laravel admin 搜索 laravel-admin 关联搜索
使用框架封装方法筛选做搜索时,相信很多小伙伴都会遇到问题:
当前表只有关联的ID,没有搜索的字段,使用以下代码方法解决问题
举例:数据表中只有推广表推广IDpublicity_id 但是筛选 要搜索推广表 中的筛选字段
这时常规的方法已经不能解决问题
解决关键词whereHas
代码片 常规搜索
.
// 常规搜索
$filter->equal('publicity_id','推广id');
代码片 关联搜索(联合搜索)
.
// 关联搜索推广表中的其他字段
$filter->where(function($query){
$query->whereHas('publicity',function($query){#数据表关联推广表
$query->whereHas('advertype',function($query){#推广表关联产品线表
$query->whereHas('producttype',function($q){#产品线关联产品类型表
$q->where('product_type_id',$this->input);#最终达到按产品类型关联推广去做筛选});});});},'产品线类型')->select(ProductTypeModel::dataOptions(['product_type_id','product_type_name']));
总结:wherehas是非常好用的方法,可以关联下去无线重叠,里面的第一个参数 需要在model 模型里有关联的方法