Как использовать условие where в операторе if, который уже написан в codeigniter - PullRequest
0 голосов
/ 06 мая 2020

У меня есть ситуация, когда параметр $user_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();
}

Спасибо

Ответы [ 2 ]

1 голос
/ 06 мая 2020

Использование 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();

Использование 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();

Замените ModelName на значение, определенное для таблицы users.

0 голосов
/ 06 мая 2020

Вы можете сделать то же самое:

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

return $builder->get();

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...