Я использую сетку для отображения предприятий. Я собираюсь сократить наш вызов на уровне Laravel до минимума, так что допустим, у меня около 20 000 предприятий, и я не хочу загружать их все, если мне это не нужно. Поэтому я показываю строку поиска до того, как сетка загружается для ввода и запроса, и, основываясь на их результатах поиска, я загружаю то, что соответствует, используя Laravel, в сетку.
У меня проблема со специальными персонажами. Если в БД у меня есть Business Name of 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
Одним из способов, который может быть неприемлемо медленным, является
WHERE REPLACE(field, "'", "") LIKE 'tam osha%"
где в БД хранится как Tam O'Shanter
,
Других решений пока нет …