【发布时间】:2018-11-27 21:15:47
【问题描述】:
我想在创建新项目后立即自动将数据分配到属性(即自定义 ID 号)。
我了解到,不幸的是,下一个框中给出的示例在 Eloquent 5.7 中不再适用!
在 Eloquent 5.7 中不可能:
use Illuminate\Database\Eloquent\Model as Eloquent;
class Message extends Eloquent {
...
public static function boot() {
parent::boot();
self::creating(function ($model) {
$model->ID = 1234; // 1234 shall be replaced later by a function
});
}
...
}
对于 Eloquent 5.7:
据我所知,我现在必须定义一个单独的类并将其在我的模型中链接到请求的事件,如下所示:
use Illuminate\Database\Eloquent\Model as Eloquent;
class Message extends Eloquent {
...
protected $dispatchesEvents = [
'creating' => MessageCreated::class,
];
...
}
但我现在的问题是,我不知道如何创建这个额外的类“MessageCreated”。我阅读和看到的所有教程都是使用全套 Laravel(使用 ARTISAN 执行一些终端命令......)。但在我的环境中,我只安装了 Illuminate/Eloquent,所以我不知道如何继续。
感谢您的想法!
提姆
【问题讨论】:
标签: events eloquent event-handling illuminate-container