阅读(3393) (10)

Laravel 8 定义事件

2021-07-01 16:46:30 更新

事件类是一个保存与事件相关信息的容器。例如,假设我们生成的 OrderShipped 事件接收一个 Eloquent ORM 对象:



namespace App\Events;

use App\Models\Order;

use Illuminate\Broadcasting\InteractsWithSockets;

use Illuminate\Foundation\Events\Dispatchable;

use Illuminate\Queue\SerializesModels;

class OrderShipped

{

    use Dispatchable, InteractsWithSockets, SerializesModels;

    public $order;

    /**

     * 创建一个事件实例

     *

     * @param  \App\Models\Order  $order

     * @return void

     */

    public function __construct(Order $order)

    {

        $this->order = $order;

    }

} 

如你所见,这个事件类中没有包含其它逻辑。它只是一个已购买的 Order 的实例的容器。如果使用 PHP 的 serialize 函数序列化事件对象,事件使用的 SerializesModels trait 将会优雅地序列化任何 Eloquent 模型。