php - How properly select data from DB according to filter in Eloquent? -


i have filter.

filter contains 3 fields. call_date_from, call_date_till, telephone.

so need select leads (lead model) table rows fit filter.

in raw php + mysql write this:

$sql = ' '; $post['call_date_from'] ? $sql .= ' `call_date` >= ' . $post['call_date_from']; $post['call_date_till'] ? $sql .= ' , `call_date` <= ' . $post['call_date_till']; $post['telephone'] ? $sql .= ' , `telephone` %' . $post['telephone'] . '%';  mysql: 'select * leads' . $sql; 

so how same in laravel eloquent?

this how can filter in laravel eloquent using query scope.

in model

class lead extends model {     public function scopecalldatefrom($query, $date)     {         if ($date) {             return $query->where("call_date", ">=", $date);         } else{           return $query;           }      }      public function scopecalldatetill($query, $date)     {         if ($date) {             return $query->where("call_date", "<=", $date);         } else{           return $query;           }      }      public function scopetelephone($query, $telephone)     {         if ($telephone) {             return $query->where("telephone", "like", "%$telephone%");         } else{           return $query;           }      } } 

in controller

public index()  {         $posts   = lead::calldatefrom(input::get('call_date_from'))                         ->calldatetill(input::get('call_date_till'))                         ->telephone(input::get('telephone'))                         ->orderby('created_at', 'desc')                         ->paginate(); } 

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -