mercredi 12 décembre 2018

How can I Refactor this search filter query?

I need to search in multiple tables. I'm checking every single request object. For example: I am checking if the request has that object then concating it to my main query and getting that query result at the last. It doesn't looks and isn't good. How can I make this search query filter better in laravel? Note: I have searched questions in stackoverflow but they are dealing with only one model.

$query = DB::table('clients')
        ->leftjoin('ecommerce_contacts','ecommerce_contacts.client_id', '=', 'clients.id')
        ->select('ecommerce_contacts.*', 'clients.*')
        ->where('clients.is_deleted', '=', '0');

        if(!is_null($request->fname)){
            $query+=->where('clients.fname', 'like', '%$request->fname%');
        }
        if(!is_null($request->lname)){
            $query+=->where('clients.lname', 'like', '%$request->lname%');            
        }
        if(!is_null($request->gender)){
            $query+=->where('clients.sex', $request->sex);            
        }
        if(!is_null($request->number)){
            $query+=->where('ecommerce_contacts.sex', 'like', $request->number);            
        }
        if(!is_null($request->registered_date)){

        }
        if(!is_null($request->purchase)){

        }
        $client = $query->get();        
        $data = json_encode($clients);
        return $data;



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire