laravel5——事件

原创 2015年11月20日 17:41:47
创建事件类:php artisan make:event TestEvent ,生成文件:app/Events/TestEvent.php
创建事件的处理程序:php artisan handler:event TestSum --event=TestEvent ,生成文件:vi app/Handlers/Events/TestSum.php
         每次创建新事件时,需要执行上述两条语句,同时在EventServiceProvider.php的$listen添加事件和处理程序,
         若觉得麻烦,可以先在EventServiceProvider.php的$listen添加新的事件和处理程序,然后执行php artisan event:generate即可。
注:
1)针对事件使用多个处理类的情况,每个处理类handle中的参数必须是同类型,可理解为这些参数(事件类)拥有相同的父类,或类之间是父子关系;运行结果是依次执行各个handler内容。
2)事件处理默认调用handler方法,若需要指定,则在添加$listen时指定方法即可:app\Handlers\Events\TestSum@testSupermanDie。




监听器闭包
若仅仅创建事件类,而没有创建事件对应的处理程序,我们可以直接在EventServiceProvider的boot方法中直接使用闭包进行处理,
Event::listen('App\Events\NoneHandlerTest', function($event)
{
    // 处理事件...
});




触发事件
1)调用event(),形式如:event(new TestEvent())
2)用Facade触发,形式如:Event::fire(new TestEvent());


模型事件(Model events and Observers)
    可用事件:
        creating created 创建 
        updating updated 更新 
        saving saved 创建 & 更新 
        deleting deleted 删除
    若creating、updating、saving、deleting事件返回false,就会取消数据库操作;
    使用示例:
        在EventServiceProvider的boot方法中加入如下代码:
        Order::creating(function()
        {
            echo 'Creating success!'; 
   return false;
        });
     那么在点击创建订单后,会输出'Creating success!',但该订单不会写入数据库,若去掉return false,则订单会被写入数据库。


模型观察者
    创建模型观察者类,该类可能包含的方法:creating, created, updating, updated, saving, saved, deleting, deleted, restoring, restored
    然后在EventServiceProvider的boot方法中注册该观察者实例:Order::observe(new OrderObserver());

Laravel数据库操作的三种方式

Laravel提供了3种操作数据库方式:DB facade(原始方式)、查询构造器和Eloquent ORM。下面我将逐一讲解。 数据库的配置文件在config目录下的database.php里。打...

Laravel Eloquent 模型事件

这篇文章主要是用事件去监控模型的数据更新等。 Eloquent模型方面可以参考Laravel官方文档:http://www.golaravel.com/一、简要概述:模型会触发很多事件,每次数据库数...

laravel5学习笔记(2)——路由

路由是laravel所有程序的入口,可以这么说,在laravel中传统意义上的“网页” 已经不存在,在传统的网站建设思维中,网站是由一个个静态或动态的网页构成。而在laravel中,只有一个个的任务,...
  • yfszzx
  • yfszzx
  • 2015年06月12日 08:36
  • 777

laravel5学习笔记(3)——复杂的路由

路由的url地址,除了前面讲的直接设定外,更加强大的地方在于可以通过模板的形式设定。 我们考虑这样一个问题: 要为每一个用户做一个主页,这个主页在目录/users/之下,传统的PHP,要访问名字为...
  • yfszzx
  • yfszzx
  • 2015年06月12日 11:48
  • 653

用仿ActionScript的语法来编写html5——第三篇,鼠标事件与游戏人物移动

第三篇,鼠标事件与游戏人物移动 用仿ActionScript的语法来编写html5——第一篇,显示一张图片 http://blog.csdn.net/lufy_legend/article...

PyQt5教程(四)——事件与信号

在这部分教程中我们将探讨在程序内部发生的事件与信号。事件所有的GUI程序都是事件驱动的。事件主要由用户触发,但也可能有其他触发方式:例如网络连接、window manager或定时器。当我们调用QAp...

PyQt5(4)——控件事件响应与信号槽

事件(Events)是 GUI 程序中很重要的一部分,它由用户操作或系统产生。当我们调用程序的 exec_()方法时,程序就会进入主循环中。主循环捕获事件并将它们发送给相应的对象进行处理。 为此,Qt...

NodeJs——(5)与 events 事件模块

①events模块只提供了一个对象,events.EventEmitter 他的核心是 事件发射 和 事件监听 功能   每个事件由一个事件名(用于标识事件),和多个参数组成。   事件名:...

H5开发01——mui.fire()触发自定义事件

监听自定义事件 添加自定义事件监听操作和标准js事件监听类似,可直接通过window对象添加,如下: window.addEventListener('customEvent',funct...

使用 jQuery Mobile 与 HTML5 开发 Web App(十) —— jQuery Mobile 默认配置与事件基础

从本文开始,使用 jQuery Mobile 与 HTML5 开发 Web App 系列将会进入第三部分——jQuery Mobile 事件与方法,这其中将会利用之前所讲述的 jQuery Mobi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:laravel5——事件
举报原因:
原因补充:

(最多只允许输入30个字)