【问题标题】:How to use where condition in if statement which is already written in codeigniter如何在已经用codeigniter编写的if语句中使用where条件
【发布时间】:2020-05-06 14:58:35
【问题描述】:

我遇到了$user_id 参数是可选的情况,我曾经在codeigniter 中按照下面的方式执行此操作。但我无法弄清楚,如何在 laravel 的 eloquent 和查询构建器中编写这个查询。非常感谢任何帮助。

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

谢谢

【问题讨论】:

    标签: php sql laravel codeigniter


    【解决方案1】:

    使用 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();
    

    使用查询生成器:

    $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

    【讨论】:

      【解决方案2】:

      你也可以这样做:

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

      https://laravel.com/docs/7.x/queries

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-08
        • 2022-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-03
        • 1970-01-01
        • 2019-05-07
        相关资源
        最近更新 更多