malhal/laravel-createdby

一个特性,可以为你的模型添加createdBy和updatedBy用户关系

v1.0.0 2016-09-19 15:11 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:58:40 UTC


README

一个特性,可以为你的模型添加createdBy和updatedBy用户关系。

首先,更新你的数据库或者为每个模型添加迁移

$table->unsignedInteger('created_by_id');
$table->unsignedInteger('updated_by_id');
$table->foreign('created_by_id')
    ->references('id')->on('users')
    ->onDelete('cascade');
$table->foreign('updated_by_id')
    ->references('id')->on('users')
    ->onDelete('cascade');

然后在你的模型中使用

use CreatedBy;

现在,每当创建或更新模型时,createdBy和updatedBy关系将自动更新。

不幸的是,当使用自增键时,你不应该在User模型上使用此特性,这是由于MySQL的限制,一个字段无法引用当前正在插入的ID。然而,你仍然可以使用Laravel-CreatedByPolicy,在该项目中解释了相应的解决方案。如果你使用UUID作为键,则不会出现此问题。

还有一些额外的范围特性,例如

添加连接以从用户表中检索用户信息

$query->withCreatedBy()
$query->withUpdatedBy()

基于用户查询

$query->whereCreatedBy($user)

在保存时暂时禁用更新

$model->saveWithoutCreatedBy();

如果你希望将此特性作为简单安全模型的一部分,可以查看此特性的扩展Laravel-CreatedByPolicy

安装

需要PHP 5.6.4+和Laravel 5.3+。

要获取Laravel CreatedBy的最新版本,只需使用Composer引入项目即可

$ composer require malhal/laravel-createdby dev-master