所以正如问题所说…是否有一种方法来运行PHP工匠命令在后台,当用户点击在web浏览器中的链接?
例如,我想做一个按钮在我的应用程序迁移迁移文件,所以当这个按钮被点击:
<a href="/migrate" class="btn btn-primary">Migrate</a>
我想运行
php artisan migrate
在背景。这是可能的吗?
当然可以!只需在routes'web.php
文件中创建一个新路由。然后你可以简单地调用Artisan::call()
方法。
例如,访问make-migration
路由时,需要为invoice表创建一个迁移文件。你可以这样做:
Route::get('make-migration', function () {
Artisan::call('make:migration', [
'name' => 'create_invoices_table',
'--create' => 'invoices',
]);
return 'Create invoices migration table.';
});
或者在您的情况下,如果您想运行迁移:
Route::get('migrate', function () {
Artisan::call('migrate');
return 'Database migration success.';
});
阅读更多关于以编程方式运行Artisan命令的信息。
希望这有帮助!