【问题标题】:Laravel 5.0 Query Builder - Where with multiple parametersLaravel 5.0 Query Builder - 有多个参数的地方
【发布时间】:2017-03-14 09:53:45
【问题描述】:

我有一个 Laravel 5.0 项目,我需要实现以下逻辑

$var1= 'A';
$var2= 'B';
$var3= 50;
$data = DataModel::select('attr1','attr2')->where(function($q){
    $q->where('attr3','like','%'.$var1.'%');
    $q->where('attr4','like',$var2.'%');
    $q->where('attr5','=',$var3);
})->get();

问题在于“Where”函数 $var1、var2 和 $var3 是未定义的变量。

我的问题是,如何将多个参数传递给 where 函数?

【问题讨论】:

    标签: php laravel-5 laravel-query-builder


    【解决方案1】:

    这里,闭包函数传入 where 参数。要继承变量,您必须使用 use 关键字

    例如function($q) use($var1, $var2, $var3){...

    要了解更多关于闭包函数的信息,请查看 php 手册。

    【讨论】:

      【解决方案2】:

      试试这个

      $var1= 'A';
      $var2= 'B';
      $var3= 50;
      $data = DataModel::select('attr1','attr2')->where(function($q) use ($var1, $var2, $var3) {
          $q->where('attr3','like','%'.$var1.'%')
              ->orWhere('attr4','like',$var2.'%')
              ->orWhere('attr5','=',$var3);
      })->get();
      

      【讨论】:

        猜你喜欢
        • 2018-11-20
        • 2016-04-10
        • 2021-04-18
        • 2018-12-21
        • 1970-01-01
        • 2019-08-11
        • 1970-01-01
        • 1970-01-01
        • 2014-04-25
        相关资源
        最近更新 更多