Как выбрать все записи из одной таблицы, а некоторые из другой таблицы в CakePHP 3.6 - PullRequest
0 голосов
/ 04 сентября 2018

SELECT myTable. *, OtherTable.foo, otherTable.bar ...

как мы можем написать вышеуказанный запрос в cakephp? Я попробовал это, но не сработало.

$data = $this->Articles->find()->select(['Articles.*','Categories.name'])->innerJoineWith('Categories');

Это дает мне ошибку около SELECT Fees.* AS Сборы __ *.

Так что вместо этого я должен написать все столбцы таблицы статей.

$data = $this->Articles->find()->select(['Articles.id','Articles.name','Articles.title','Articles.description','Categories.name'])->innerJoineWith('Categories');

Есть ли решение в CakePHP? скажи пожалуйста. Спасибо.

Ответы [ 2 ]

0 голосов
/ 26 марта 2019
$data = $this->Articles->find()
        ->select($this->Articles)
        ->select(['Categories.name'])
        ->innerJoineWith('Categories');
0 голосов
/ 04 сентября 2018

Вы можете сделать так:

$this->Articles->find('all')->contain(['Categories' => function($q) {
                    return $q->select('Categories.name');
                }])->select($this->Articles);

$this->Articles в операторе выбора будет извлекать все записи из таблица статей и $q->select('Categories.name') будет только получать Название категории из связанной таблицы категорий.

Ссылка: https://github.com/cakephp/cakephp/issues/7913

...