как использовать raw SQL с Laravel Eloquent Builder - PullRequest
0 голосов
/ 05 ноября 2018

Мне нужно получить имя и идентификатор из моей пользовательской таблицы, имя в двух столбцах: first_name и last_name. Это то, что я сделал

$user = User::select('id',DB::raw("CONCAT(`first_name`, ' ' ,`last_name`) AS name"))
        ->where('name', 'like' ,$token)

, что дает мне ошибку Unknown column 'name' in 'where clause'. Я распечатал сырой sql, который выглядит так

select `id`, CONCAT(`first_name`, ' ' ,`last_name`) AS name from `user` where `name` like ? and `user`.`deleted_at` is null

Как правильно использовать concat и like с моим eloquent Builder?

Ответы [ 4 ]

0 голосов
/ 05 ноября 2018

Попробуйте это-

$user = User::select('id',DB::raw("CONCAT(`first_name`, ' ' ,`last_name`) AS name"))
    ->where(DB::raw("CONCAT(`first_name`,' ', `last_name`)"), 'LIKE', "%" . $name . "%");

Это сработало для меня.

0 голосов
/ 05 ноября 2018

Вы должны попробовать это:

$user = User::select('Tenant_Id', DB::raw('CONCAT(first_name, " ", last_name) AS name'))
        ->where('name', 'like' ,$token)
0 голосов
/ 05 ноября 2018

Попробуйте:

$user = User::select('id',DB::raw("CONCAT(`first_name`, ' ' ,`last_name`) AS name"))
        ->where(DB::raw("CONCAT(`first_name`, ' ', `last_name`)"), 'LIKE', "%".$token."%");
0 голосов
/ 05 ноября 2018

попробуй так использовать

$user = User::select('id',DB::raw("CONCAT(first_name, ' ' ,last_name) as name"))
        ->where(DB::raw("CONCAT(first_name, ' ' ,last_name)"), 'like' ,"%".$token."%")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...