Całkiem fajnie zrobione jest to tutaj:
https://laravel-news.com/tntsearch-with-laravel-scout
Dodanie relacji do wyników wyszukiwania:
w modelu dodatkowa funkcja
public function toSearchableArray() {
$a = $this->toArray();
$tags = $this->tags()->get(['name'])->map( function ($tag) {
return $tag['name'];
});
$a['tags'] = implode(' ', $tags->toArray());
return $a;
}
Następnie we wszelkich funkcjach zapisu/aktualizacji trzeba dopisać coś takiego
$modelName->searchable();
Import pierwszego indeksu
php artisan scout:import "App\Image"
Paginacja z atrybutami w url-u
domyślnie linki w paginacji pominą atrybuty w url-u. Trzeba dodać coś takiego:
najpierw w controllerze używamy inputa
use Illuminate\Support\Facades\Input;
następnie w funkcji wrzucamy nową zmienną i przekazujemy ją do widoku
$additional = Input::except('page');
a w widoku paginację wyświetlamy tak
{{ $results->appends($additional)->links('vendor.pagination.bootstrap-4') }}