Laravel-Userstamps 项目教程
1. 项目介绍
Laravel-Userstamps 是一个为 Laravel 框架设计的开源项目,旨在通过 Eloquent 模型自动维护 created_by
和 updated_by
列。这些列会自动填充当前已认证用户的信息。如果模型使用了 Laravel 的 SoftDeletes 特性,该包还会处理 deleted_by
列。
主要功能
- 自动维护
created_by
和updated_by
列。 - 支持 Laravel 的 SoftDeletes 特性,自动维护
deleted_by
列。 - 提供辅助方法来临时停止或恢复用户标记的维护。
- 允许自定义列名。
2. 项目快速启动
安装
首先,确保你的 Laravel 项目版本在 5.2 或更高,并且 PHP 版本在 5.6 或更高。然后使用 Composer 安装 Laravel-Userstamps:
composer require wildside/userstamps
配置
在你的模型中添加 created_by
和 updated_by
列。如果使用 SoftDeletes,还需要添加 deleted_by
列。以下是一个示例迁移:
$table->unsignedBigInteger('created_by')->nullable();
$table->unsignedBigInteger('updated_by')->nullable();
$table->unsignedBigInteger('deleted_by')->nullable(); // 如果使用 SoftDeletes
使用
在你的模型中引入 Userstamps
特性:
use Wildside\Userstamps\Userstamps;
class Foo extends Model
{
use Userstamps;
}
自定义列名
如果需要自定义列名,可以在模型中设置相应的常量:
use Wildside\Userstamps\Userstamps;
class Foo extends Model
{
use Userstamps;
const CREATED_BY = 'alt_created_by';
const UPDATED_BY = 'alt_updated_by';
const DELETED_BY = 'alt_deleted_by';
}
辅助方法
stopUserstamping()
:停止用户标记的维护。startUserstamping()
:恢复用户标记的维护。
3. 应用案例和最佳实践
应用案例
假设你正在开发一个博客系统,每个文章的创建和更新都应记录下操作的用户。使用 Laravel-Userstamps 可以轻松实现这一功能。
class Post extends Model
{
use Userstamps;
protected $fillable = ['title', 'content'];
}
最佳实践
- 批量操作:在批量更新或删除时,使用
updateWithUserstamps
和deleteWithUserstamps
方法以确保用户标记被正确维护。 - 自定义列名:根据项目需求自定义列名,避免与现有列冲突。
- 软删除:如果使用 SoftDeletes,确保在迁移中添加
deleted_by
列。
4. 典型生态项目
Laravel-Userstamps 可以与其他 Laravel 生态项目结合使用,例如:
- Laravel Auditing:用于记录模型的所有更改历史。
- Laravel Permissions:用于管理用户权限和角色。
- Laravel Activitylog:用于记录用户活动日志。
通过结合这些项目,可以构建一个功能强大的用户管理和审计系统。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考