dt2002 2015-10-19 14:54
浏览 33
已采纳

Laravel 5.1事件火灾

I'm firing event and passing object with array like this:

$event = new App\Events\SendMessage;
$event->msg = [ 'sender_id'=>'191', 
                'recepient_id'=>'190',
                'text'=>'some text',
              ];
Event::fire($event);

Is it possible to make this call a bit shorter and fire event in one line like this?

Event::fire(new App\Events\SendMessage([
                        'sender_id'=>'191', 
                        'recepient_id'=>'190',
                        'text'=>'some text',
                    ]));
  • 写回答

4条回答 默认 最新

  • dongzhuohan7085 2015-10-19 14:56
    关注

    You would just need to make sure your event constructor is setup to populate that field.

    See: http://laravel.com/docs/5.1/events#defining-events

    <?php
    
    namespace App\Events;
    
    use App\Events\Event;
    use Illuminate\Queue\SerializesModels;
    
    class SendMessage extends Event
    {
        use SerializesModels;
    
        public $msg;
        public function __construct($msg)
        {
            $this->msg = $msg;
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)
编辑
预览

报告相同问题?