首页 > 解决方案 > 防止或跳过符号和实体的渲染 Laravel / PHP

问题描述

我的控制器中有这个功能:

if ($request->get('query')) {
    $query = $request->get('query');

    $data = DB::table('users')
        ->where('is_archive', '=', 0)
        ->where(function($string) use ($query) {
            $string->where('first_name', 'LIKE', '%' . $query . '%')
            ->orWhere('last_name', 'LIKE', '%' . $query . '%')
            ->orWhere('church_id', 'LIKE', '%' . $query . '%');
        })
        ->get();
}

它的作用是实时搜索结果,列出与您键入字母相同的确切结果。与每次输入字母时的谷歌搜索栏相同。它将显示与当前键入的文本相同的结果。我希望添加可以防止呈现<, >,等的安全功能'"但它会接受空格(空格键)字符。到目前为止我所做的是:

$sanitizedQuery = strtolower(trim(preg_replace('/\s+/', '', $query)));

但我似乎无法达到我想要的结果。任何建议都受到高度赞赏。

标签: phplaravellaravel-5.7

解决方案


推荐阅读