Твърде много програмисти се опитват да се ограничат до функционалността на рамката. НЕ. Използвайте това, което предоставя рамката. Ако няма функционалността, която търсите, тогава:
- Кодирайте необходимата ви функционалност в разширение на клас
или
- Персонализирайте кода в рамките на рамката, за да отговаря на вашите нужди.
Често разработчиците се опитват да забият квадратно колче в кръгла дупка и се оказва, че вършат твърде много допълнителна работа, която наистина само усложнява кода. Направете крачка назад и попитайте защо използвате рамката като начало. Той внася структура в неструктуриран език. Той осигурява солидна основа за многократна употреба, върху която да изградите вашето приложение. Не е предназначен да бъде кутия, в която да се поставите и да бъдете ограничавани.
АКТУАЛИЗАЦИЯ:Отделих минута, за да прочета Условия за комплексно намиране и намери отговора си:
$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);