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。