我正试图让'已保存'事件在模型上触发。我以为我有它的工作,这在某种程度上。我正在听3个不同的模型,它只在一个模型上工作。我的代码中的“属性”模型如下。有什么理由说它只能在一个上工作,为什么在那一个上工作?
append/2
}
答案 0 :(得分:1)
类似
use \App\Clients\ClientMeta;
class Attribute extends Model
{
protected $fillable = [...];
protected static function boot()
{
parent::boot();
static::saved(function ($attribute) {
$meta = ClientMeta::firstOrCreate(['client_id' => $attribute->mem_id, 'meta_name' => 'profile_updated']);
$meta->meta_value = time();
$meta->save();
});
}
答案 1 :(得分:1)
您需要将parent::boot()
和static
添加到方法名称
public static function boot()
{
parent::boot();
...
确保 您正在使用基于CRUD方法的正确模型事件:
事件,根据Laravel
Eloquent模型可以激活几个事件,让您可以连接各种事件 使用以下方法指出模型的生命周期:创建, 创建,更新,更新,保存,保存,删除,删除, 恢复,恢复。事件允许您每次轻松执行代码 在数据库中保存或更新特定的模型类。
例如,当您更新模型时,您可能希望执行以下操作:
public static function boot()
{
parent::boot();
static::updated(function ($attribute) { ... }
请注意,您还应该将此添加到每个模型,而不是应用提供商。