Eloquent: выберите поле, из которого произошел сбой блока - PullRequest
0 голосов
/ 25 мая 2018

Я получил немного сложный запрос SQL, используя комбинацию where, whereHas, orWhereHas и т. Д.

Все идет хорошо, но когда я добавляю 'custom_records.custom_title' (см. Ниже) вВыберите поля, с которыми не получается:

The Response content must be a string or object implementing __toString(), "boolean" given.

Есть идеи?Вот фрагмент: `

$record = $this->record->newQuery();`

 $record->whereHas('customRecords', function ($query) use ($searchTerm) {
            $query->where('custom_title', 'like', '%'.$searchTerm.'%');
        });

 return $record->get([
            'records.id',
            'records.another_field',
            'records.another_field_2',
            'custom_records.custom_title',
        ]);

Обновление Когда я запускаю произведенный запрос SQL на клиенте mysql, он возвращается с:

Unknown column 'custom_records.custom_title',' in 'field list'

1 Ответ

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

Вы не можете выбрать custom_records.custom_title таким образом.Поскольку это HasMany отношение, может быть несколько custom_records на record.

. Вы должны сделать что-то вроде этого:

Record::whereHas('customRecords', function ($query) use ($searchTerm) {
    $query->where('custom_title', 'like', '%'.$searchTerm.'%');
})->with(['customRecords' => function ($query) use ($searchTerm) {
    $query->where('custom_title', 'like', '%'.$searchTerm.'%');
}])->get(['id', 'another_field', 'another_field_2']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...