gpt4 book ai didi

php - 查询数据库时忽略撇号 - Laravel 5.4

转载 作者:行者123 更新时间:2023-11-29 10:56:24 24 4
gpt4 key购买 nike

我的网站上有一个带有自动完成功能的搜索栏,用户可以在其中搜索旅行指南。 一些旅行指南的名称例如:Snookie's Outfitter 正如您所看到的,它的名称中有一个撇号。因此,当用户键入第一个单词并点击该撇号时,查询将忽略其余部分,因为用户没有在搜索栏中插入撇号。我想知道我怎么可能忽略数据库中的撇号。

这就是当有人搜索时我的查询的设置方式:

public function index()
{
$query = request()->get('query');

$results = Listing::searchAndCache($query);

return view('search.index', compact('results', 'query'));
}

我的列表模型:

  public static function searchAndCache($query)
{
return self::whereHas('locations', function($m) use($query) {
$m->where('region', 'like', '%'.$query.'%');
$m->orWhere('country', 'like', '%'.$query.'%');
$m->orWhere('city', 'like', '%'.$query.'%');
$m->orWhere('county', 'like', '%'.$query.'%');
$m->orWhere('regionCode', 'like', '%'.$query.'%');
})->live()->orWhere(function($m) use($query){
$m->where('name','like','%'.$query.'%');
$m->live();
})->paginate();
}

我知道以前有人问过这个问题,特别是对于 PHP,但我只是不知道如何在 Laravel 搜索查询中实现这个问题。

最佳答案

您需要使用 HTML::entities() 对查询 sq 引号进行编码,双引号将替换为 html 引用。

public static function searchAndCache($query)
{
$query = HTML::entities($query);

return self::whereHas('locations', function($m) use($query) {
$m->where('region', 'like', '%'.$query.'%');
$m->orWhere('country', 'like', '%'.$query.'%');
$m->orWhere('city', 'like', '%'.$query.'%');
$m->orWhere('county', 'like', '%'.$query.'%');
$m->orWhere('regionCode', 'like', '%'.$query.'%');
})->live()->orWhere(function($m) use($query){
$m->where('name','like','%'.$query.'%');
$m->live();
})->paginate();
}

关于php - 查询数据库时忽略撇号 - Laravel 5.4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42956273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com