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 函数?
这里,闭包函数传入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();
我有一个 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 函数?
这里,闭包函数传入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();