Laravel как сделать групповой конкатат из двух столбцов с помощью querybuilder - PullRequest
0 голосов
/ 07 января 2020

Я получил params, равный projectname, и он принимает любую строку, основанную на столбце моего БД. Что я хочу, так это когда я ищу ключевое слово, подобное этому BEDOK, а затем показывает мне объединенный список столбцов в моей БД. Вот так BEDOK-20, BEDOK-22.

Мой БД такой: enter image description here

Код моего контроллера, который я пробовал

    public function getNames(Request $request){
        $result =  DB::connection('mysql2')
                    ->table('xp_pn_resale')
                    ->select('town')
                    ->whereRaw(DB::raw("CONCAT(town, ' ', street_name,'',block,'')LIKE '%$request->projectname%' "))
                    ->limit($request->limit)   
                    ->get();
                    // ->toSql();

        return response()->json($result);            
    }

И я получил такой ответ

"town": "BEDOK"
},
{
"town": "BEDOK"
},
{
"town": "BEDOK"
},
...

Что я хочу, так это

[
"town": "BEDOK-44"
},
{
"town": "BEDOK-540"
},
{
"town": "BEDOK-702"
},
...

Ответы [ 2 ]

2 голосов
/ 07 января 2020

Вам просто нужно выбрать вот так:

->selectRaw("CONCAT(town, '-', block) AS town")
1 голос
/ 07 января 2020

Я сталкивался с этой проблемой ранее, и я решил ее с помощью DB :: raw, вы можете попробовать изменить метод whereRaw следующим образом:

->where(DB::raw("CONCAT(`town`, '-', `block`)", "LIKE", "%".$request->projectname."%"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...