可扩展查询构造器extract函数

mac2022-06-30  39

extract 提取

当条件where中参数个数不固定时,或新增参数,多处调用,进行的一种便于维护的封装。

如在Goods模型中,封装查询条件。

namespace Model\Goods /*返回闭包*/ public static function condition(array $conditions) { return function($query)use($conditions){ extract($conditions); if(!empty($keyword)){ $query->where('name','like','%'.$keyword.'%'); } if(!empty($status)){ $query->where('status',$status); } ... //更多 }; }

控制器中

以laravel为例 Use App\Model\Goods; public function getList(Request $request) { $conditions = $request->input(); $limit = isset($condition['limit'])?isset($condition['limit']):10; $where=Goods::condition($conditions); //var_dump($where);die(); $data = Goods::where($where) ->pagenate($limit) ->get(); ... }

如参数为?keyword=a&status=1&…

extract函数,将a赋值给$keyword,将1赋值给$status。

最新回复(0)