Terlalu banyak pembuat kode mencoba membatasi diri pada fungsionalitas kerangka kerja. JANGAN. Gunakan apa yang disediakan kerangka kerja. Jika tidak memiliki fungsi yang Anda cari, maka:
- Kodekan fungsionalitas yang Anda butuhkan ke dalam ekstensi kelas
atau
- Ubah kode dalam kerangka kerja sesuai kebutuhan Anda.
Seringkali, pengembang mencoba memalu pasak persegi ke dalam lubang bundar dan akhirnya melakukan terlalu banyak pekerjaan ekstra yang benar-benar hanya membuat kode menjadi rumit. Ambil langkah mundur dan tanyakan mengapa Anda menggunakan kerangka kerja untuk memulai. Ini membawa struktur ke bahasa yang tidak terstruktur. Ini memberikan fondasi kokoh yang dapat digunakan kembali untuk membangun aplikasi Anda. Itu tidak dimaksudkan untuk menjadi kotak untuk menempatkan diri Anda dan dibatasi.
PEMBARUAN:Saya meluangkan waktu sebentar untuk membaca Kondisi Pencarian Kompleks dan temukan jawaban Anda:
$joins = array(
array(
'table' => 'test_twos',
'alias' => 'TestTwo',
'type' => 'LEFT',
'conditions' => array(
'TestTwo.id = TestOne.id',
)
),
array(
'table' => 'test_threes',
'alias' => 'TestThree',
'type' => 'LEFT',
'conditions' => array(
'TestThree.id = TestOne.id',
)
)
);
$dbo = $this->getDataSource();
$subQuery = $dbo->buildStatement(
array(
'fields' => array('*'),
'table' => $dbo->fullTableName($this),
'alias' => 'TestOne',
'limit' => null,
'offset' => null,
'joins' => $joins,
'conditions' => null,
'order' => null,
'group' => null
),
$this->TestOne
);
$query = $subQuery;
$query .= ' UNION ';
$joins = array(
array(
'table' => 'test_twos',
'alias' => 'TestTwo',
'type' => 'LEFT',
'conditions' => array(
'TestTwo.id = TestOne.id',
)
),
array(
'table' => 'test_threes',
'alias' => 'TestThree',
'type' => 'RIGHT',
'conditions' => array(
'TestThree.id = TestOne.id',
)
)
);
$dbo = $this->getDataSource();
$subQuery = $dbo->buildStatement(
array(
'fields' => array('*'),
'table' => $dbo->fullTableName($this),
'alias' => 'TestOne',
'limit' => null,
'offset' => null,
'joins' => $joins,
'conditions' => null,
'order' => null,
'group' => null
),
$this->TestOne
);
$query .= $subQuery;
pr($query);