Laravel - 捕获 php artisan 命令

Posted

技术标签:

【中文标题】Laravel - 捕获 php artisan 命令【英文标题】:Laravel - Catch php artisan commands 【发布时间】:2020-03-17 21:21:09 【问题描述】:

我在config/app 中做了一些更改,以使用前端选择的多个数据库, 现在我必须在\Request()->header('database') 中告诉我要访问哪个数据库。

它工作得很好,问题是:当我尝试执行任何工匠命令时,我的逻辑死了,因为没有通知数据库。

所以我需要在 artisan commands 中通知数据库,如下所示:

php artisan migrate --database=sandiego_school
php artisan migrate:rollback --database=newyork_school 

如何观察所有命令以获取参数?

【问题讨论】:

【参考方案1】:

在这种情况下,我想您应该创建自己的命令来覆盖您要调用的命令,然后在命令的句柄方法中指定您要处理的连接:

\DB::setDefaultConnection($connexion);

或者您也可以简单地在请求中添加标头:

request()->headers->set('database', $dbname)

【讨论】:

我的问题是如何使用命令参数设置这个“数据库”。我无法设置默认连接。

以上是关于Laravel - 捕获 php artisan 命令的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 拦截多参数 Artisan 事件

如何手动使用 composer, artisan ...(Laravel) php 命令

php Laravel Artisan迁移实例

php Laravel Artisan Migrate创建领域

无法 php artisan 迁移 - Laravel

laravel 自动删除 php artisan serve 上的 server.php