Laravel поиск неоднозначных строк - PullRequest
0 голосов
/ 10 июня 2018

У меня проблема с поиском.Я могу сделать основной поиск.Я хотел бы сделать более расширенный поиск, как поиск.

Например.Таблица базы данных имеет строку "AAA" в столбце 'pn'.Я хотел бы показать запись, когда набираю текстовое поле поиска «aaa».

Я сделал это ниже, но это не сработало.Может кто-нибудь сказать мне, в чем проблема, пожалуйста?

public function show(Request $request)
{
    if (isset($request->pn)) {
        $param = ['pn' => $request->pn];
        $item = DB::select('select * from sts where pn collate utf8_unicode_ci like '%'.$pn.'%'', $param);      
    } else {
        $items = DB::select('select * from sts');
    }
    return view('pn.searchshow', ['items' => $items]);
}

Ответы [ 2 ]

0 голосов
/ 10 июня 2018
public function show(Request $request)
{
    $query = \DB::table('sts');
    if (isset($request->pn)) {
        $query->where(DB::raw('`pn` callate utf8_unicode_ci'), 'like', '"%' . $request->pn . '%"');
    }

    $items = $query->get();
    return view('pn.searchshow', ['items' => $items]);
}
0 голосов
/ 10 июня 2018

Привязка должна включать % подстановочные знаки:

$param = ['pn' => '%'.$request->pn.'%'];
$item = DB::select('select * from sts where pn collate utf8_unicode_ci like :pn', $param);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...