Laravel 5.0查询生成器-其中包含多个参数


Laravel 5.0 Query Builder - Where with multiple parameters

我有一个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参数中传递。要继承变量,必须使用use关键字

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

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

试试这个

$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();