基本上我已经安装了带有 TNT 搜索的 Laravel Scout,所有的配置都是正确的并且它们工作,我什至有一个很好的搜索栏来使用 ajax 工作流程
但是模型的结果来自整个数据库集合,我的要求只是显示当前登录会话的用户创建的记录记录的结果
这些模型通过 Eloquent 关系关联,它们在通过该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 侦察搜索Auth::user()
可以修改 Auth 行为以附加侦察,它会被 Laravel 的作曲家更新覆盖吗?