Php 如何在已经在codeigniter中编写的if语句中使用where条件

Php 如何在已经在codeigniter中编写的if语句中使用where条件,php,sql,laravel,codeigniter,Php,Sql,Laravel,Codeigniter,我遇到了一个情况,$user\u id参数是可选的,我用下面写的方式在codeigniter中这样做。但我无法理解,我如何才能在laravel的雄辩和查询生成器中编写此查询。非常感谢您的帮助 function get_user($user_id) { $this->db->select('u.id as user_id, u.name, u.email, u.mobile'); if($user_id != '') { $this->db-&g

我遇到了一个情况,
$user\u id
参数是可选的,我用下面写的方式在codeigniter中这样做。但我无法理解,我如何才能在laravel的雄辩和查询生成器中编写此查询。非常感谢您的帮助

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();
}

谢谢

您也可以这样做:

$builder = Model::query();
if($user_id != '') {
     $builder->where('user_id', $user_id);
}

return $builder->get();

您可以做同样的事情:

$builder = Model::query();
if($user_id != '') {
     $builder->where('user_id', $user_id);
}

return $builder->get();
使用雄辩的:

$modalObject = new ModelName::select('id as user_id', 'name', 'email', 'mobile');

if ($user_id) {
    $modalObject = $modalObject->where('user_id', $user_id);
}

return $modalObject->get();
使用查询生成器:

$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();
ModelName
替换为为表
用户定义的

使用雄辩的:

$modalObject = new ModelName::select('id as user_id', 'name', 'email', 'mobile');

if ($user_id) {
    $modalObject = $modalObject->where('user_id', $user_id);
}

return $modalObject->get();
使用查询生成器:

$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();
ModelName
替换为为表
users
定义的名称