所以当问题说...当用户点击网络浏览器中的链接时,有没有办法在后台运行php artisan命令?
例如,我想在我的应用程序中创建一个用于迁移迁移文件的按钮,以便在单击此按钮时:
<a href="/migrate" class="btn btn-primary">Migrate</a>
我想跑
php artisan migrate
在后台。
这有可能吗?
答案 0 :(得分:4)
当然可以!只需在routes\web.php
文件中创建一个新路线即可。然后,您只需调用Artisan::call()
方法即可。
例如,当您访问make-migration
路由时,您希望为Invoices表创建迁移文件。你可以这样做:
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.';
});
详细了解如何以编程方式here运行Artisan命令。
希望这有帮助!