Я использую CakePHP 3.x.
Я хочу, чтобы иметь возможность вызывать $this- > Categories- > find(), а затем присоединяться к темам topic.cat_id = Categories.id, а затем присоединяться к сообщениям Posts.topic_id = Topics.id.
Я не получаю никаких ошибок, но единственные данные, которые я получаю, это данные категорий, я пробовал присоединиться к ЛЕВЫМ и ВНУТРЕННЕЕ соединение без успеха. Любая помощь будет принята с благодарностью.
Отношение таблицы:
CategoriesTable
$this->hasMany('Topics');
TopicsTable
$this->belongsTo('Categories');
$this->hasMany('Posts');
PostsTable
$this->belongsTo('Topics');
Также у меня есть запрос:
$query = $this->Categories->find('all')
->order(['Categories.name' => 'ASC'])
->join([
'topics' => [
'table' => 'Topics',
'type' => 'LEFT',
'conditions' => 'topics.Cat_id = Categories.id'
],
'posts' => [
'table' => 'Posts',
'type' => 'LEFT',
'conditions' => 'posts.topic_id = topics.id'
]
]);
Пробовал использовать сдерживаемое поведение, но теперь я получаю сообщение об ошибке "Категории не связаны с сообщениями", используя этот запрос:
$query = $this->Categories->find('all')
->order(['Categories.name' => 'ASC'])
->contain(['Topics', 'Posts' => function($q){
return $q->where(['Posts.topic_id' => 'Topics.id']);
}]);