when的条件查询格式:
>when($A,function ($string)use($B){
return $string->where('id',"$B");}
when中第一个参数$A用来判断$A是否存在,不存在直接return退出查询,存在则走function
function中的第一个参数string代表的是你的查询整体,命名随意($strlen,$inter,$abc等等)
use中是你需要代入的查询条件
举个栗子:
public function classification(Request $request){
#每页条数
$size = 100;
#当前页
$page = 1;
#分类id
$kind_id = $request->get('kind_id');
#分类状态
$kind_status = $request->get('kind_status');
#keywords需要检索的钥
$keywords = $request->get('keywords');
$info = recursiveCategory(Kinds::with('image')
->when($kind_id,function ($string)use($kind_id){
return $string->where('id',"$kind_id");
})->when($kind_status,function ($string)use($kind_status){
return $string->where('kind_status',$kind_status);
})->when($keywords,function ($string)use($keywords){
return $string->where('kind_name','like',"$keywords%");
})->offset(($page-1)*$size))->limit($size)->get();
return succeed(['kindInfo' => $info],'分类展示成功');
}