cakephp 3.6 извлекает связанные данные из базы данных - PullRequest
0 голосов
/ 19 мая 2018

Я новичок в CakePHP, и что-то работает не так, как ожидалось.

У меня есть PostsController с использованием следующего метода:

public function index()
{
    $posts = $this->Posts->find('all');
    $this->set(compact('posts');
}

Но если я пытаюсь получить данные из другой таблицы/ model like:

public function index()
{
    $posts = $this->Posts->find('all');
    $categories = $this->Categories->find('all');

    $this->set(compact('posts', 'categories');
}

Это даст мне следующую ошибку:

Вызов функции-члена find () для логического значения

Чтоя пропускаю?

Я использую CakePHP версии 3.6.3

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Только в PostsController Сообщения Модель загружена, вам также нужно загрузить модель Категории.

public function index()
{
    $posts = $this->Posts->find('all');
    $categories = $this->loadModel('Categories')->find('all');

    $this->set(compact('posts', 'categories');
}
0 голосов
/ 19 мая 2018

В вашем PostsController, $this->Posts инициализируется автоматически, а $this->Categories - нет.Предполагая, что сообщения и категории связаны, вы можете использовать $this->Posts->Categories->find().Если нет, вы можете использовать TableRegistry::get('Categories')->find().

...