Запрос CakePHP 3 не выполняется

Я новичок в 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);

ошибка остановки показа

0

Решение

Если у вас правильно установлены ассоциации таблиц (они должны быть автоматически, если вы использовали bake создать свой код), вы должны просто сказать:

$lifeinsurances = TableRegistry::get('LifeInsurances')
->find('all')
->contain(['Institutions']);
0

Другие решения

Если вы хотите, чтобы содержать в работе, вам нужно определить ассоциации в ваших соответствующих моделях (лежит в папке папок в случае CakePHP 3.x).
Поскольку вы говорите, что выпекли модели, убедитесь, что отношения определены в соответствующих моделях.

Это может быть причиной того, что он выдает ошибку.

Обычно, когда вы создали все таблицы в своей базе данных, вы должны испечь модели. Потому что добавление таблицы после выпекания моделей не определяет отношения в новых моделях, и вы должны явно определить ее.

Посмотри на это —
Как определяются ассоциации, когда код запекается в Cakephp

Также проверьте соглашения об именах внешних ключей, определенных в таблицах. Cakephp использует это соглашение об именах для определения отношений между моделями.

Кроме того, было бы здорово, если бы вы могли опубликовать журнал ошибок, чтобы найти более точное решение вашей проблемы.

0

По вопросам рекламы [email protected]