Php 从外部修改Laravel包中的变量
我有一个Laravel包,我用用户雄辩的模型过滤从数据库中获取的用户。所以我有点像Php 从外部修改Laravel包中的变量,php,laravel,Php,Laravel,我有一个Laravel包,我用用户雄辩的模型过滤从数据库中获取的用户。所以我有点像 if ($request->get('search')) { User::where('email', 'like', '%' . $search . '%') ->orWhere('first_name', 'like', '%' . $search . '%') ->orWhere('name'
if ($request->get('search')) {
User::where('email', 'like', '%' . $search . '%')
->orWhere('first_name', 'like', '%' . $search . '%')
->orWhere('name', 'like', '%' . $search . '%')
...
现在我想在项目本身完成之前,在用户上添加一些预处理过滤器。我首先想到的是发起这样的活动
event(new UserFilterStart($users));
在运行筛选器之前修改用户的位置。因此,代码如下所示:
$users = User::all();
event(new UserFilterStart($users));
if ($request->get('search')) {
$users->where('email', 'like', '%' . $search . '%')
->orWhere('first_name', 'like', '%' . $search . '%')
->orWhere('name', 'like', '%' . $search . '%')
我没有通过引用传递变量,所以我可以操纵它。这可能是一件好事,因为这可能是我的最终解决方案。
我明白这不是事件应该被使用的方式,我正在寻找替代方法。如何实现从包中插入/修改代码?考虑到我拥有这个软件包。好的,结果证明它可以很好地处理这个事件。我只是在别的地方犯了个错误。如果我使用这样的事件,有什么真正的缺点吗 您的侦听器是如何进行修改的?最后我尝试在事件构造函数中这样修改:公共函数uu构造(&$users){$users=$users->where('first_name','Ozella');},我这样做只是为了测试我是否能够修改从事件(new UserFilterStart($users))获得的内容;