laravel 模型 updating方法
时间: 2023-11-30 10:04:22 浏览: 170
Laravel 关联模型-关联新增和关联更新的方法
Laravel 模型中的 `updating` 方法是一个模型事件,当模型被更新时会触发该事件。在该事件中,可以对模型的属性进行修改或验证。
`updating` 方法需要在模型中进行注册,可以使用 `boot` 方法来注册该事件。例如:
```php
class MyModel extends Model
{
protected static function boot()
{
parent::boot();
static::updating(function ($model) {
// 在更新前对模型属性进行修改或验证
$model->attribute = 'new value';
});
}
}
```
在上面的例子中,当模型被更新时,会触发 `updating` 事件,该事件会将模型作为参数传递给回调函数。在回调函数中,可以对模型的属性进行修改或验证。
需要注意的是,`updating` 事件在保存模型时触发,并不是在调用 `update` 方法时触发。如果想要在调用 `update` 方法时触发事件,可以使用 `updating` 方法的全局作用域。例如:
```php
class MyModel extends Model
{
protected static function boot()
{
parent::boot();
static::addGlobalScope('updating', function ($builder) {
$builder->updating(function ($model) {
// 在更新前对模型属性进行修改或验证
$model->attribute = 'new value';
});
});
}
}
```
在上面的例子中,使用了 `addGlobalScope` 方法来注册全局作用域,该作用域会在查询构建器上注册 `updating` 事件。这样,在调用 `update` 方法时,就会触发 `updating` 事件。
阅读全文