請看下面的代碼。我用Codeigniter編寫的這段代碼。我需要在條件和訂單條件有效的情況下突出顯示,只有在設置了這些發佈請求的情況下。否則,我只是select * from student
。Laravel雄辯只有在需要的地方和訂單條件
笨代碼
$this->db->select('*');
$this->db->from('student');
if($this->input->post('first_name') != NULL){
$first_name = $this->input->post('first_name');
$this->db->where('first_name', $first_name);
}
if($this->input->post('last_name') != NULL){
$last_name= $this->input->post('last_name');
$this->db->where('last_name', $last_name);
}
if($this->input->post('order_by') != NULL){
$order_by= $this->input->post('order_by');
$this->db->order_by($order_by);
}
$query = $this->db->get();
Laravel代碼
我會做同樣的事情與laravel。
$first_name = $request->input('first_name');
$last_name = $request->input('last_name');
$order_by = $request->input('$order_by');
$students = Student::orderBy($order_by)
->where('first_name',$first_name)
->where('last_name',$last_name);
->paginate(10);
我能夠運行上面的代碼。代碼適用於所有發佈請求。
但是,如果沒有first_name
發佈請求,我需要刪除->where('first_name',$first_name)
。
如果有我沒有order_by
發佈請求,我需要刪除orderBy($order_by)
。
如何用上面的Laravel代碼實現它。