当你在使用where语句有前提条件时,比如某值为1的时候才执行where子句,否则不执行,这个时候,laravel5.5新出了一个简便方法when($arg,fun1[,fun2])。
具体用法如下:当$arg为真时,执行闭包fun1,为假时,执行闭包fun2(可选);
举个栗子
when($arg,function ($q){
return $q->orderBy('id', 'asc');
}, function ($q) use ($a){
return $q->orderBy($a, 'desc');
});
当$arg为真是,执行按id升序排序,当$a为假时,执行按$a降序排序。