Я использую форму поиска панели, которая ищет в базе данных + -175.000 моделей. Я установил Scout в соответствии с документацией и импортировал все записи, используя scout:import
,
Теперь я настроил функцию в моем контроллере, чтобы выполнять поиск и возвращать все записи, но записи всегда пусты, независимо от того, что я ищу.
web.php:
Route::post('/act/search', ['uses' => 'ActController@searchAct', 'as' =>'searchAct']);
ActController @ searchAct:
public function searchAct(Request $request)
{
$actes = Act::search($request->search)->paginate(100);
return view('act')->with('actes', $actes);
}
Форма:
<form class="navbar-form navbar-left" action="{{ route('searchAct') }}" method="post">
{{ csrf_field() }}
<div class="form-group">
<input type="text" name="search" id="search" class="form-control" placeholder="Search">
</div>
<button type="submit" class="btn btn-default">Search</button>
</form>
Насколько я вижу, это должно работать, но dd($actes)
скажем, что коллекция пуста. Я включил use Searchable;
Вход в мою модель. Разведчик индексирует записи отлично: все [App\Act]
записи были импортированы.
У меня была похожая проблема несколько дней назад, и как уже упоминалось в одном из комментариев выше, laravel-scout
не создавал индексный файл, но я не мог понять почему. Может быть, люди, которые создали пакет, намеревались сделать это из соображений производительности.
Во всяком случае, в моем собственном случае я в итоге интегрировал TNTSearch имеется в наличии Вот (с легкой для понимания документацией) сделать индексацию для меня.
Других решений пока нет …