Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Всем привет!
Друзья, подскажите как правильно сформировать запрос?
есть таблицы tables1 и tables2 в tables2 хранится tables1_id
<input name="search_name">
делаю поиск в столбце name из tables1, необходимо сделать выборку строк из tables2, где id из tables1 = tables1_id
мой нерабочий код ниже
$tables2Query = Tables2 ::query();
$tables1Query = Tables1::query();
if ($request->filled('search_name')){
$tables1QueryId = $tables1Query->pluck('id')->where('name', 'LIKE', '%'.$request->search_name.'%');
$tables2Query->where('tables1_id', $tables1QueryId );
}
laravel ver. 5.8
Не в сети
добавь в модель tables1 отношение 'tables2' hasMany для tables2 и достаточно будет 1 запроса
if ($request->filled('search_name')){
$query = Tables1::query()->with('tables2')->where('name', 'LIKE', '%'.$request->search_name.'%')->get();
$result = $query->tables2; //тут ваши записи
}
Не в сети
Привет.
Получается прописал в модели tables1
public function tables2()
{
return $this->hasMany(Table2::class, 'tables1_id', 'id')->get();
}
В котроллере
if ($request->filled('search_name')){
$queryTables1 = Table1::query()
->with('tables2')
->where('name', 'LIKE', '%'.$request->search_name.'%')
->get();
$tables2Query= $queryTables1->tables2();
}
ошибка
Method Illuminate\Database\Eloquent\Collection::addEagerConstraints does not exist.
что не так?
Не в сети
return $this->hasMany(Table2::class, 'tables1_id', 'id')->get();
в отношении внутри модели get() не нужно
Не в сети
Страницы 1