有没有办法轻松挂钩工匠命令?我想要完成的是每次执行php artisan migrate
命令时都会执行一段代码。
答案 0 :(得分:2)
只需在代码中的某个位置添加一个侦听器(即使在app / start / artisan.php的顶部)也可以监听'artisan.start'事件。
Event::listen('artisan.start', function($app)
{
// $app is instance of Illuminate\Console\Application
// since the $app hasn't figured the command yet you'll
// have to do it yourself to check if it's the migrate command
});
答案 1 :(得分:2)
您可以尝试这样的事情(您可以将其放在filters.php
文件中):
Event::listen('artisan.start', function($app) {
if( isset($_SERVER['argv'][1]) && $_SERVER['argv'][1] == 'migrate' ) {
// do something because it's migrate command
}
});
答案 2 :(得分:0)
您可以扩展Schema Builder外观并覆盖构建函数,如下所示:
protected function build(Blueprint $blueprint)
{
your_function();
Parent::build($blueprint);
}
但是,使用--pretend选项进行迁移时,不会调用您的函数。我不知道有任何内置的方法可以在不扩展Schema Builder或Migrator类的情况下挂钩迁移。