【问题标题】:Laravel Eloquent Query WITH parametersLaravel Eloquent 查询带参数
【发布时间】:2021-02-11 02:31:48
【问题描述】:

早上,

我想使用 Eloquent 来提出这个请求,但我遇到了一个错误。

$ModelVars=Model1::with(['Model2' => function($query,$var){
                            return $query->where('field1', 'like', '%'.$var.'%');}])->get();

谁能帮帮我。 提前考虑。

【问题讨论】:

  • 错误是什么?
  • Tks @Jackowski,见下面的错误:函数 App\Http\Controllers\Achat\DemandeachatsController::App\Http\Controllers\Achat\{closure}() 的参数太少,传入 1 个。 .\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php 在第 431 行,预计正好 2 个

标签: laravel dynamic eloquent with-statement eloquent-relationship


【解决方案1】:

将您的代码更改为:

$ModelVars = Model1::with(['Model2' => function($query) use ($var){
    return $query->where('field1', 'like', '%'.$var.'%'); }])
->get();

use 不是函数,它是Closure syntax 的一部分,它只是使外部作用域的指定变量在闭包内可用。

【讨论】:

  • 现在可以了...感谢@sta 为您提供帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-12
  • 1970-01-01
  • 2017-10-22
  • 2016-02-09
  • 2015-02-22
  • 2017-06-05
  • 1970-01-01
相关资源
最近更新 更多