You need to enable JavaScript to run this app. 如何在控制器中运行Artisan命令?用Artisan门面调用tenants:artisan指令
优惠活动
大模型
产品
解决方案
定价
更多

如何在控制器中运行Artisan命令?用Artisan门面调用tenants:artisan指令

控制器调用租户Artisan命令的方法

首先确保你已经在控制器顶部引入Artisan门面:

use Illuminate\Support\Facades\Artisan;

在控制器方法中使用Artisan::call()方法调用即可,参数对应命令的参数和选项即可:

// 等价于原命令 php artisan tenants:artisan "migrate" --tenant=22
Artisan::call('tenants:artisan', [
    'command' => 'migrate',
    '--tenant' => 22
]);

如果需要获取命令的执行结果和输出,可以使用如下写法:

// 执行命令,返回值为命令退出码,0代表执行成功
$exitCode = Artisan::call('tenants:artisan', [
    'command' => 'migrate',
    '--tenant' => 22
]);
// 获取命令执行的完整输出内容
$commandOutput = Artisan::output();

补充说明

  • 如果你需要给租户侧的命令传递额外参数,比如强制执行迁移的--force参数,直接写入command参数值即可,示例:'command' => 'migrate --force'
  • 不建议在公网可访问的接口中直接调用迁移命令,避免数据风险,仅建议在内部管理场景使用该逻辑

注意:web进程运行用户需要拥有对应租户数据库的读写操作权限,否则会出现迁移执行失败的问题

内容的提问来源于stack exchange,提问作者Isaac Arcilla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 22:15:01