发布网友 发布时间:2022-04-06 07:47
共3个回答
懂视网 时间:2022-04-06 12:09
二、建立搜索条件
如何使用搜索器?我们结合实例来讲解。
我们有三个搜索条件分别是:goods_cate_id(分类筛选)、goods_status(状态筛选)、goods_name(关键字筛选)。
我们先建立三个搜索方法:
public function searchGoodsCateIdAttr($query, $value) { $query->where('goods_cate_id','in', $value); } public function searchGoodsStatusAttr($query, $value) { $query->where('goods_status','=', $value); } public function searchGoodsNameAttr($query, $value) { $query->where('goods_name','like', '%'.$value.'%'); }
要特别注意,搜索方法的命名,我们必须严格按照官方手册中的要求定义。比如说我们数据表搜索字段为goods_cate_id,那么在定义方法的时候如下都是错误的:
1、public function searchGoodsCateId($query, $value),少Attr。
2、public function searchGoodsCateIDAttr($query, $value),驼峰写法错误。
3、public function searchGoodsCateAttr($query, $value),少Id驼峰写法错误。
4、private function searchGoodsCateIdAttr($query, $value),必须是public。
三、触发搜索
搜索器只有在调用 withSearch 方法的时候触发。
$goodsData=Goods::name('goods')->withSearch(['goods_cate_id','goods_status','goods_name'],[ 'goods_cate_id'=>$cateChilerenId, 'goods_status'=>$goods_status, 'goods_name'=>$goods_name ])->paginate(10);
另外,搜索器除了可以做搜索,同时也可以做排序功能,在这里就不再举例。
在调试的时候,我们还可以打印下sql语句,如果没有我们想要的结果,我们可以直接分析sql语句。
echo Goods::getLastSql();
热心网友 时间:2022-04-06 09:17
提交的时候记得把默认的值去掉 才能判断是否有值..
热心网友 时间:2022-04-06 10:35
1、数据库及表的建立和连接