Laravel暧昧的字符串搜索

时间:2018-06-10 13:28:41

标签: laravel-5

我有关于搜索的问题。 我可以进行基本搜索。我想进行更高级的搜索 喜欢搜索。

例如。数据库表有" 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 :(得分:2)

绑定必须包含%通配符:

$param = ['pn' => '%'.$request->pn.'%'];
$item = DB::select('select * from sts where pn collate utf8_unicode_ci like :pn', $param);

答案 1 :(得分:0)

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]);
}