Проблемы с контроллером - PullRequest
0 голосов
/ 09 мая 2019

У меня проблемы с получением опций для выбора с помощью ajax:

"SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец 'полное_имя' в 'предложении where' (SQL: выберите количество (*) какагрегат из драйверов, где полное_имя типа %% ▶ "

public function drivers(Request $request)
    {
        $q = $request->get('q');

        return Driver::select("id", "first_name", "last_name"
                ,DB::raw("CONCAT(first_name,' ',last_name) as full_name"))
            ->where('full_name', 'like', "%$q%")->paginate(null, ['id', 'full_name as text']);
    }

Я не знаю, где проблема, возможное решение?

Спасибо

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

Почему бы не попробовать это так

return Driver
    ::select("id", "first_name", "last_name",DB::raw("CONCAT(first_name,' ',last_name) as full_name"))
    ->whereRaw('full_name like %?%', [$q])
    ->paginate(null, ['id', 'full_name as text']);

https://laravel.com/docs/5.8/queries Необработанные методы

0 голосов
/ 09 мая 2019

Вы не можете использовать виртуальный столбец или псевдоним в предложении where. Так что попробуйте этот вместо:

public function drivers(Request $request)
{
    $q = $request->get('q');

    return Driver::select("id", "first_name", "last_name",
           DB::raw("CONCAT(first_name,' ',last_name) as full_name"))
           ->having('full_name', 'like', "%$q%")->simplePaginate(10);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...