检测模型是否正在方法内部创建或更新


Detect if model is being created or updated inside a method

在扩展EloquentBaseModel中,我有validate方法。

我的问题是,如果模型正在创建或更新,我如何在该方法内部进行检测?

我知道并使用模型事件,但不知道如何实现相同的内部方法。

Laravel有一个名为exists()的方法来检查模型是否来自数据库。

如果创建或更新了Model,则以下内容将返回true。

$model->exists

更新模型:

$affectedRows = User::where('votes', '>', 100)->update(array('status' => 2));
dd($affectedRows);

参考:

http://laravel.com/docs/eloquent#insert-更新-删除

您可以使用getOriginal()查看该模型中是否已经设置了属性。

根据你得到的,你可以知道这是一个新的模型还是一个现有的模型。


getOriginal()文档:

http://laravel.com/api/source-class-Illuminate.Database.Eloquent.Model.html#2114-2124