如何应用typeahead.js autocomplete search从laravel数据库的不同列中按lastname< space>firstname搜索用户名?

4nkexdtk  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(216)

这里我在我的laravel代码中使用typeahead.js autocomplete search jquery插件。你能帮我应用typeahead.js autocomplete search从laravel数据库的不同列中按lastname firstname或firstname lastname两种方式搜索用户名吗?
我的控制器逻辑是-

public function autocomplete(Request $request) {   
    $string = "%{$request->input('query')}%";
    $searchValues = preg_split('/\s+/', $string, -1, PREG_SPLIT_NO_EMPTY); 

       $users = Profile::where(function ($q) use ($searchValues) {
        foreach ($searchValues as $value) {
            $q->orWhere('firstname', 'like', "%{$value}%")->orWhere('lastname', 'like', "%{$value}%")->orWhere('mobile', 'like', "%{$value}%");
        }
    })->get(array('firstname','lastname','mobile'));

    return response()->json($users); 
}
mrfwxfqh

mrfwxfqh1#

试试这个

if ($request->has('name'))
        {
            $query->where(function ($q) use ($request)
            {
                return $q->where('first_name', 'LIKE', $request->input('name') . '%')
                    ->orWhere('last_name', 'LIKE', '%' . $request->input('name') . '%');
            });
        }

相关问题