Veuillez regarder le code suivant. Ce code j'ai écrit avec Codeigniter. Ce dont j'ai besoin pour le mettre en évidence lorsque la condition et les conditions de commande ne fonctionnent que si ces demandes de publication sont définies. Sinon, j'ai juste select * from student
.Laravel Éloquent où et conditions de commande seulement si nécessaire
Codeigniter code
$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();
code Laravel
Je vais faire la même chose avec 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);
Je peux courir au-dessus du code. Le code fonctionne lorsqu'il y a toutes les demandes de publication.
Mais s'il n'y a pas first_name
post demande, je dois supprimer ->where('first_name',$first_name)
.
S'il n'y a pas order_by
post demande, je dois supprimer orderBy($order_by)
. Comment faire avec le code Laravel ci-dessus.