Я новичок в cakephp3
, Я пытаюсь выполнить запрос ниже, но он показывает мне ошибку.
$lifeinsurances = TableRegistry::get('LifeInsurances')->find("all");
$life_insurances = $lifeinsurances->find()
->join([
'table' => 'institutions',
'alias' => 'institutions',
'type' => 'LEFT',
'conditions' => 'institutions.id = LifeInsurances.institute_id',
]);
Я исправил предыдущий запрос. Теперь я получаю только одну таблицу данных.
РЕДАКТИРОВАТЬ
Теперь я создал ассоциацию, используя торт для выпечки. Но новая ошибка, показывающая это время. Ниже мой код.
public function index() {
$this->paginate = [
'contain' => ['Institutions']
];
$lifeInsurances = $this->paginate($this->LifeInsurances);
$this->set(compact('lifeInsurances'));
$this->set('_serialize', ['lifeInsurances']);
}
Внутренняя ошибка сервера
если я удалю
$this->paginate = [
'contain' => ['Institutions']
];
$lifeInsurances = $this->paginate($this->LifeInsurances);
ошибка остановки показа
Если у вас правильно установлены ассоциации таблиц (они должны быть автоматически, если вы использовали bake
создать свой код), вы должны просто сказать:
$lifeinsurances = TableRegistry::get('LifeInsurances')
->find('all')
->contain(['Institutions']);
Если вы хотите, чтобы содержать в работе, вам нужно определить ассоциации в ваших соответствующих моделях (лежит в папке папок в случае CakePHP 3.x).
Поскольку вы говорите, что выпекли модели, убедитесь, что отношения определены в соответствующих моделях.
Это может быть причиной того, что он выдает ошибку.
Обычно, когда вы создали все таблицы в своей базе данных, вы должны испечь модели. Потому что добавление таблицы после выпекания моделей не определяет отношения в новых моделях, и вы должны явно определить ее.
Посмотри на это —
Как определяются ассоциации, когда код запекается в Cakephp
Также проверьте соглашения об именах внешних ключей, определенных в таблицах. Cakephp использует это соглашение об именах для определения отношений между моделями.
Кроме того, было бы здорово, если бы вы могли опубликовать журнал ошибок, чтобы найти более точное решение вашей проблемы.