代码之家  ›  专栏  ›  技术社区  ›  aishazafar

如何用函数laravel传递额外参数

  •  1
  • aishazafar  · 技术社区  · 6 年前

    如何用函数传递额外的参数。我尝试了以下代码,但没有成功。

    $endpoints = MyModel::with(['myrelation' => function($q) use ($extraParams) {
        foreach ($extraParams as $param)
        {
            $q->orWhere('ia.paramCode','like',$param.'%');
        }
    }])->get();
    

    Cannot use lexical variable $extraParams as a parameter name
    

    提前谢谢

    1 回复  |  直到 6 年前
        1
  •  2
  •   Davit Zeynalyan    6 年前

    在PHP7中,当您传递同一个变量两次时,就会发生这种情况 (use ($extraParams) (使用($extraParams) (use ($someThingElse)

    $endpoints = MyModel::with([
        'myrelation' => function($q) use ($extraParams){
            foreach ($extraParams as $param) {
                $q->orWhere('ia.paramCode','like',$param.'%');
            }
        }
    ])->get();
    

    这是php7中的一个Bug apply quick fix。