【发布时间】:2019-03-30 04:21:41
【问题描述】:
我正在使用网格来显示业务。我将把我们的 laravel 调用减少到最低限度,所以假设我有大约 20,000 家企业,如果不需要,我不想全部加载它们。所以我在加载网格以输入和查询之前显示一个搜索栏,并根据他们的搜索输入,我使用 Laravel 将匹配的内容加载到网格中。
我遇到的问题是特殊字符。如果在数据库中我有一个 Lucky's Bar 的企业名称,并且用户搜索输入是 Luckys Bar 没有撇号,它不会找到结果。与斜线或破折号相同。
实现这一目标的最佳方法是什么?
PHP - 搜索语句
public function search($search_input) {
$response = DB::table(self::$table)
->select(array(
'ID',
'Signup_Date',
'Business_Name'
))
->where('Business_Name', 'LIKE', '%'.$search_input.'%')
->order_by('Signup_Date', 'desc')
->get();
return $response;
}
使用 Laravel 3,是的,我知道它已经过时,我们计划升级,但这是当前需要修复的问题。 https://laravel3.veliovgroup.com/docs/database/fluent
【问题讨论】:
-
'我知道它已经过时了,我们计划升级,但这是一个需要修复的当前问题。' - 嘿,我以前听说过这个,很奇怪足够的另一个问题出现了,它延迟了它。考虑到 Laravel 现在是 5.7,你可以肯定它已经修补了早期版本中的许多主要安全问题。
-
数据库中实际存储的是什么?是文字
'还是对应的实体? -
您可以在查询中使用
HTML::entities。 -
抱歉,是的,在数据库中应该有 Lucky's Bar。
-
确保撇号是
',而不是像here那样的其他东西。