robinhoo1973 / laravel-database-trigger-5.8
一个用于向 Laravel 迁移添加数据库触发器的包
Requires
- php: ^7.1
- laravel/framework: ^5.5.0
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ^6.5 || ^7.0
This package is auto-updated.
Last update: 2024-09-25 16:21:00 UTC
README
Laravel 数据库触发器提供了一种向 Laravel 迁移添加数据库触发器的方法,就像您会向数据库表添加一样。触发器是一个与表相关联的命名数据库对象,在表的特定事件发生时激活。有关触发器的更多信息,请参阅这里。
安装
Laravel 数据库触发器需要至少 PHP 7.1。此特定版本至少支持 Laravel v5.5。该包目前仅支持 MySQL。
要获取最新版本,只需使用 Composer 包含该包。
$ composer require ntimyeboah/laravel-database-trigger
安装后,如果您没有使用自动包发现,那么您需要在您的 config/app.php
中注册 TopviewDigital\LaravelDatabaseTrigger\TriggerServiceProvider
服务提供者。
用法
使用 make:trigger
artisan 命令创建一个触发器迁移文件。该命令需要触发器的名称、事件对象表名称、动作时间和激活触发器的触发事件。
$ php artisan make:trigger after_users_update
事件对象表
事件对象表是触发器关联的表名称。
动作时间
触发器的激活时间。可能的值是 after
和 before
。
after
- 在对事件对象表进行更改后处理动作。
before
- 在对事件对象表进行更改之前处理动作。
事件
激活触发器的事件。触发器事件可以是 insert
、update
和 delete
。
insert
- 当对事件对象表执行插入操作时激活触发器。
update
- 当对事件对象表执行更新操作时激活触发器。
delete
- 当对事件对象表执行删除操作时激活触发器。
以下将生成一个触发器迁移文件,其名称为 after_users_update
,事件对象表名称为 users
,动作时间为 after
,事件为 update
。
use Illuminate\Database\Migrations\Migration; use TopviewDigital\LaravelDatabaseTrigger\TriggerFacade as Schema; class CreateAfterUsersUpdateTrigger extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('after_users_update') ->on('users') ->statement(function() { return '//...'; }) ->after() ->update(); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('users.after_users_update'); } }
从 statement
方法的闭包中返回触发器语句。
以下是一个示例触发器迁移,在更新用户行后向 users_audit
表中插入。
... /** * Run the migrations. * * @return void */ public function up() { Schema::create('after_users_update') ->on('users') ->statement(function() { return 'insert into `users_audit` (`name`, `email`) values (old.name, old.email);'; }) ->after() ->update(); } ...
测试
运行测试
$ composer test
变更日志
有关最近更改的更多信息,请参阅CHANGELOG。
贡献
有关详细信息,请参阅CONTRIBUTING。
安全性
如果您在此包中发现安全漏洞,请发送电子邮件至 Ntim Yeboah,邮箱地址为 ntimobedyeboah@gmail.com。所有安全漏洞都将得到及时处理。
许可协议
Laravel 数据库触发器采用MIT 许可协议 (MIT)授权。