Üç tablo Projeler, Görevler ve Etiketler var. Projects.id ilk tablonun birincil anahtarıdır, Tasks.id ikinci tablonun PK'sidir ve Tags.id üçüncü tablonun PK'sidir.kek php ile birleştirme tüm eşleşmeleri bile eşleşen olmayan eşleşir. Nasıl düzeltilir?
Projeler Model Kodu
public $primaryKey = 'id';
public $hasMany = array(
'Tasks' => array('className' => 'Tasks','foreignKey' => 'project_id')
);
Görevler Model Kodu bazı beklenmedik sonuç döndürmek
public $primaryKey = 'id';
public $hasMany = array(
'Tags' => array('className' => 'Tags','foreignKey' => 'task_id')
);
Aşağıdaki sorgu pasajı pasajı.
$joins = array(
array('table' => 'project_tasks',
'alias' => 'Tasks',
'type' => 'inner',
'conditions' => array(
'Projects.id = Tasks.project_id'
)
),
array('table' => 'task_tags',
'alias' => 'Tags',
'type' => 'inner',
'conditions' => array(
'Tasks.id = Tags.task_id',
"Tags.tag_name = 'Driver'"
)
)
);
$data = $this->Projects->find('all', array(
'recursive' => 2,
'joins' => $joins
));
i alıyorum tepki verileri
[Projects] => Array
(
[id] => 1
[project_id] => 1234
[project_name] => XYZ
)
[Tasks] => Array
(
[0] => Array
(
[id] => 1
[project_id] => 1
[task_id] => 12
[task_name] => task1
[Tags] => Array
(
[0] => Array
(
[id] => 1
[task_id] => 1
[tag_id] => 3444
[tag_name] => Driver
)
)
)
[1] => Array
(
[id] => 2
[project_id] => 1
[task_id] => 343242
[task_name] => task2
[Tags] => Array
(
[0] => Array
(
[id] => 2
[task_id] => 2
[tag_id] => 4444
[tag_name] => Doctor
)
)
)
i bile Sürücü olarak etiketi olmadan görevleri alıyorum bakın olduğunu. Sürücü etiketi olmadan görevleri nasıl hariç tutabilirim?