I have got a situation where the $user_id
parameter is optional and I used to do this in codeigniter in the way written below. But I am not able to figure it out, How can I write this query in laravel’s eloquent and query builder as well. Any help is much appreciated.
x
function get_user($user_id) {
$this->db->select('u.id as user_id, u.name, u.email, u.mobile');
if($user_id != '') {
$this->db->where('user_id', $user_id);
}
return $this->db->get('users as u')->result();
}
Thanks
Advertisement
Answer
Using Eloquent:
$modalObject = new ModelName::select('id as user_id', 'name', 'email', 'mobile');
if ($user_id) {
$modalObject = $modalObject->where('user_id', $user_id);
}
return $modalObject->get();
Using Query Builder:
$builder = DB::table('users')->select('id as user_id', 'name', 'email', 'mobile');
if ($user_id) {
$builder = $builder->where('user_id', $user_id);
}
return $builder->get();
Replace the ModelName
with one defined for the table users
.