Laravel красноречивый запрос с параметрами

#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 это не функция, это часть синтаксиса замыкания, он просто делает указанные переменные внешней области доступными внутри замыкания.