Я создал таблицу с именем Delegates
, и я создал UsersTable и User Entity.И я использовал $this->setTable('delegates');
в UsersTable
, чтобы получить доступ к делегатам из $this->Users;
(я просто хочу сказать, что создал модель пользователя с таблицей делегатов)
Пока все хорошо ...
В моем приложении я пытаюсь получить доступ к глубоким ассоциациям.С этим запросом все в порядке, но когда я contain
модель User
получаю The Users association is not defined on Comments.
, я могу подтвердить, что ассоциации установлены правильно.
...
// There are more associations up there.
...
'Comments', [
'className' => 'App\Model\Table\CommentsTable',
'foreignKey' => 'delegate_assessment_criteria_id',
'belongsTo' => [
'Assessors' => [
'className' => 'App\Model\Table\AssessorsTable',
'foreignKey' => 'assessor_id',
],
'Users' => [
'className' => 'App\Model\Table\UsersTable',
'foreignKey' => 'delegate_id',
]
]
]
Здесь глубокоассоциация.
...
// There are more associations up there.
...
'Comments' => function($q) {
return $q
->select([
'id'
])
->order(['Comments.created DESC'])
->contain([
'Assessors' => function($q) {
return $q
->select([
'id'
])
->enableAutoFields();
}
])
->contain([
'Users' => function($q) {
return $q
->select([
'id',
'delegate_id'
])
->enableAutoFields();
}
])
->enableAutoFields();
}
2 Примечания:
- Если я содержу модель
User
в самой первой иерархии моего запроса, я получу доступ к User
полей, но в глубокой ассоциации это не работает. - Если я укажу
Delegates
, это работает.
Я считаю, что есть проблема с построителем запросов Cakephp.