Te veel programmeurs proberen zich te beperken tot de functionaliteit van een framework. NIET DOEN. Gebruik wat het raamwerk biedt. Als het niet de functionaliteit heeft die u zoekt, dan ofwel:
- Codeer de functionaliteit die je nodig hebt in een klasse-extensie
of
- Aangepaste draai de code binnen het raamwerk om aan uw behoeften te voldoen.
Vaak proberen ontwikkelaars een vierkante pen in een rond gat te slaan en eindigen ze met veel te veel extra werk dat de code eigenlijk alleen maar ingewikkelder maakt. Doe een stap terug en vraag waarom u het raamwerk gebruikt om mee te beginnen. Het brengt structuur in een ongestructureerde taal. Het biedt een solide herbruikbare basis om uw toepassing op te bouwen. Het is niet bedoeld als een hokje om jezelf in te stoppen en te beperken.
UPDATE:ik heb even de tijd genomen om Complexe zoekvoorwaarden en vond je antwoord:
$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);