По сути, я установил Laravel Scout с TNT Search, все настройки правильные и работают, у меня даже есть хорошая панель поиска для работы с рабочим процессом ajax.
Но результаты моделей взяты из всей коллекции базы данных, где мое требование состоит только в том, чтобы показать результаты записи записей, созданных пользователем, который в данный момент находится в сеансе.
Модели связаны через красноречивые отношения, они работают при обычном доступе через метод Auth::user()
, но поиск разведчика, похоже, не привязан ни к одной из моделей через пример Auth::user()
:
App\CourtCase::search($request->q)->get();
Вышеприведенное работает, но вернет любой результат в модели (и базовой таблице) независимо от того, принадлежит ли запись или связана с пользователем, вошедшим в систему. Однако мое намерение состоит в том,
Auth::user()->courtcase()->search($request->q)->get();
Ошибка, которую я получаю, следующая
message Call to undefined method Illuminate\Database\Eloquent\Relations\HasMany::search()
exception BadMethodCallException
file /home/vagrant/code/legistant/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php
Очевидно, это связано с тем, что Laravel Scout не подключен и не доступен через метод Auth::user()
, я могу написать код для фильтрации результатов после их возврата, но представьте себе накладные расходы на результаты до того, как они будут доступны пользователю, это кажется пустой тратой всего этого. запрос, есть ли способ охватить пользователя, а затем использовать поиск Laravel scout, аналогичный Auth::user()
Можно ли изменить поведение аутентификации, чтобы прикрепить разведчика, будет ли он перезаписан с помощью обновления композитора Laravel?