#laravel #dynamic #eloquent #with-statement #eloquent-relationship
#laravel #динамический #красноречивый #с помощью-statement #красноречивое отношение
Вопрос:
Утро,
il хотел бы использовать Eloquent для выполнения этого запроса, но у меня ошибка.
$ModelVars=Model1::with(['Model2' => function($query,$var){
return $query->where('field1', 'like', '%'.$var.'%');}])->get();
Может ли кто-нибудь мне помочь.
Спасибо заранее.
Комментарии:
1. В чем ошибка?
2. Tks @Jackowski, см. Ниже ошибка: слишком мало аргументов для функции App Http ControllersAchatDemandeachatsController::AppHttp Controllers Achat{closure}(), передано 1 .. vendorlaravelframeworksrcIlluminateDatabaseQueryBuilder.php в строке 431 и ровно 2 ожидаемых
Ответ №1:
Измените свой код на :
$ModelVars = Model1::with(['Model2' => function($query) use ($var){
return $query->where('field1', 'like', '%'.$var.'%'); }])
->get();
use
это не функция, это часть синтаксиса замыкания, он просто делает указанные переменные внешней области доступными внутри замыкания.