aravel链式查询根据条件使用链式以及闭包的使用

Laravel链式查询根据条件使用链式

Laravel闭包的的使用,大条件与,小条件和

    //搜索专题包类已拥有的素材
    public function searchSpecialOwnMaterial($request)
    {
        $req = $request->all();
        if(!isset($req['special_id']) || empty($req['special_id'])) return "error:专题包id未找到或空";
//        if(!isset($req["keyword"])) return "error:搜索关键词不存在";

        $special = DB::connection('zino')->table('special_pack')->where('id',$req['special_id'])->first();
        if(empty($special)) return "error:专题包不存在";

        $db = DB::connection('zino')->table('special_belong')
              ->where('special_id',$req['special_id']);

        if(!empty($req["keyword"])){
            $keyword = "%".$req["keyword"]."%";
            $db->where(function($dbs) use($keyword){
                $dbs->orWhere('title','like',$keyword)
                ->orWhere('tags','like',$keyword)
                ->orWhere('private_tags','like',$keyword);
            });
        }
        $data = $db->get()->toArray();

        if(empty($data)) return [];
        $osshelp=new OssHelp();
        foreach($data as $k=>$v){
            if($v["type"] == 0){
                $data[$k]['s_url'] = $v['url'];//缩略图
            }elseif($v["type"] == 3){
                $data[$k]['s_url'] = $osshelp->getUrl($v['url']);//音频
            }else{
                $data[$k]['s_url'] = $osshelp->getUrl($v['url'],1);
            }
        }

        return $data;
    }
posted @ 2020-05-15 20:46  锐庆  阅读(76)  评论(0)    收藏  举报