中小企 / laravel-model-life-events
dev-master
2024-04-08 06:50 UTC
Requires
- php: ^7.4
- laravel/framework: ^8.83
This package is auto-updated.
Last update: 2024-09-08 07:42:42 UTC
README
此库允许您扩展Laravel框架中模型生命周期方法的工作
安装
composer require sme/laravel-model-life-events
例如
class Posts extends Model { public static function booted() { self::deleted(function (self $model) { // listening to the deletion event in the current model ... }); }
对于此代码,监听器将不会工作,因为调用删除事件的函数在Builder类中缺失
public static function deletePost(int $post_id) { return self::where('id', $post_id)->delete(); }
您可以使用find($post_id)方法,然后一切都会正常工作,但这并不总是方便
public static function deletePost(int $post_id) { $post = self::find($post_id); if ($post) { return $post->delete(); } }
要使用不先进行额外的find、update等方法的delete或update方法。您可以在模型类中使用"HasEvents"特质
use SME\Laravel\Model\HasEvents; class Posts extends Model { use HasEvents; ...