zoukankan      html  css  js  c++  java
  • laravel event

    事件监听

    方法一:
    web.php

    Event::listen('eloquent.created: Apppost',function(){
        dump('A post was created');
    });
    
    Route::get('/event53',function(){
        Apppost::create(['title'=>'Title','content'=>'My Body']);
    });
    

    方法二:

    注释掉

    Event::listen('eloquent.created: Apppost',function(){
            dump('A post was created');
        });
    

    post模型中定义事件

    <?php
    
    namespace App;
    
    use AppEventsPostWasPublished;
    use IlluminateDatabaseEloquentModel;
    
    class post extends Model
    {
        protected $guarded = array();
        protected $events = [
           'created' => PostWasPublished::class
        ];
    }
    

    修改EventServiceProvider.php 中的$listen属性 创建事件和事件监听文件

    protected $listen = [
        'AppEventsPostWasPublished' => [
            'AppListenersPostWasPublishedListener',
        ],
    ];
    

    执行 php artisan event:generate

    ** 还可以依赖注入 **

    AppEventsPostWasPublished.php

    public $post;
    
    public function __construct($post)
    {
        $this->post = $post;
    }
    

    AppListenersPostWasPublishedListener.php

     public function handle(PostWasPublished $event)
         {
             dump($event->post->toArray());
         }
    

    方法三:普通路由触发event

    app/Providers/EventServiceProvider.php

    protected $listen = [
            'AppEventsUserSignUp' => [
                'AppListenersUserSignUpListener',
            ],
        ];
    

    UserSignUp.php

     use AppUser;
     public $user;
     public function __construct(User $user)
     {
         $this->user = $user;
     }   
    

    UserSignUpListener.php

    public function handle(UserSignUp $event)
    {
        dd($event->user->name);
    }
    

    web.php

    Route::get('/eventroute',function(){
        $user = AppUser::find(1);
       event(new AppEventsUserSignUp($user));
    });
  • 相关阅读:
    解决ssh或ftp下root用户认证失败问题
    setsockopt IP_ADD_MEMBERSHIP error!No such device的解决方案
    嵌入式Linux软件工程师面试题一
    00.嵌入式Linux开发环境搭建
    这个是豆瓣查书的api
    CentOS7.x安装MongoDB3.2.3教程
    Linux(Centos7)yum安装最新mysql
    解决npm速度慢的问题!!!
    windows下Gulp入门详细教程
    hibernate中hql查询
  • 原文地址:https://www.cnblogs.com/webskill/p/7469776.html
Copyright © 2011-2022 走看看