2015-10-19 124 views
1

我点火事件和传递的对象与数组是这样的:Laravel 5.1事件火灾

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

是否可以拨打这个电话有点短,火灾事件中这样一行?

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

回答

2

您只需要确保您的事件构造函数设置为填充该字段。

请参见: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; 
    } 
} 
1

没错。只是传递中的数据__construct()

class SendMessage extends Event 
{ 
    protected $data; 
    public function __construct(array $data) 
    { 
     $this->data = $data; 
    } 
} 
1

在你App\Events\SendMessage您需要定义例如构造方法:

namespace App\Events; 

class SendMessage { 

    protected $data = null; 

    public function __construct(Array $data) 
    { 
     $this->data = $data; 
    } 
} 
+1

感谢你们! – user947668