Laravel中编写事件和事件监听器

 分类:PHP 阅读 (129)  Laravel中编写事件和事件监听器已关闭评论
7月 112019
 
一、简单介绍事件和监听器

  事件Event:主要用做数据的载体,里面只是包含要传递的数据。

  监听器Listener:事件真正被触发的地方,其handle方法接受传入的Event对象,并在此处理Event中带来的数据。

二、首先定义事件和事件监听器

  打开App\Providers\EventServiceProvider.php,给$listen数组赋值要添加的事件和监听器,可定义多个事件,每个事件也可以定义多个监听器。

  比如:

三、在控制台生成相关文件

  在控制台输入命令:

  php artisan event:generate

  执行完以后可以看到App\Event和App\Listeners两个目录下多了相应的php类

四、定义Event类

  Event类主要用于运输数据,在_construct函数的参数中传入,并将值保存在内部成员变量中,示例如下:

五、Listener中处理事件

六、触发事件

  比如在用户登录成功的地方调用前面定义的事件

 

Laravel中同时使用union和paginate的问题

 分类:PHP 阅读 (43)  Laravel中同时使用union和paginate的问题已关闭评论
6月 272017
 

默认情况下,两者不能同时使用,会出现sql语句报错的问题

解决方法一:

在mysql中建一个视图来承载union数据查询,然后用paginate来分页

解决方法二:

使用array_slice来手动给get的查询结果分页(未测试此方案)

参考链接:

https://stackoverflow.com/questions/25338456/laravel-union-paginate-at-the-same-time

https://www.cnblogs.com/smallyi/p/7427377.html

5月 172016
 

  在命令行执行php artisan key:generate时提示Could not open input file: artisan错误

  开始以为artisan是php的命令,其实是Laravel的命令

  解决方法就是cd到Laravel项目所在的目录,再执行php artisan命令,如下:

  运行环境:Windows7+php5.6+Laravel5

4月 262016
 

Laravel中提供了默认的邮箱密码的验证方式,但是有的时候我们并不想使用邮箱做为验证的条件,而是使用用户名或者工号等方式来进行验证,那么如何修改呢?其实非常的简单,只要在AuthController.php中重新定义基类中的一个变量即可。如下面代码所示:

修改变量$username的值就可以了,现在进行登录验证的时候就以user表中的username字段来和密码进行匹配了。