Laravel 8 定义事件
事件类是一个保存与事件相关信息的容器。例如,假设我们生成的 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
模型。