Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从外部修改Laravel包中的变量_Php_Laravel - Fatal编程技术网

Php 从外部修改Laravel包中的变量

Php 从外部修改Laravel包中的变量,php,laravel,Php,Laravel,我有一个Laravel包,我用用户雄辩的模型过滤从数据库中获取的用户。所以我有点像 if ($request->get('search')) { User::where('email', 'like', '%' . $search . '%') ->orWhere('first_name', 'like', '%' . $search . '%') ->orWhere('name'

我有一个Laravel包,我用用户雄辩的模型过滤从数据库中获取的用户。所以我有点像

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))获得的内容;