Laravel 5.3 - 是否可以通过单击 link/button 运行 php artisan 命令
Laravel 5.3 - Is it possible to run php artisan command by clicking on a link/button
所以正如问题所说...当用户在网络浏览器中单击 link 时,有没有办法在后台 运行 php artisan 命令?
例如,我想在我的应用程序中创建一个用于迁移迁移文件的按钮,因此当单击此按钮时:
<a href="/migrate" class="btn btn-primary">Migrate</a>
我愿意运行
php artisan migrate
在后台。
这有可能吗?
当然可以!只需在 routes\web.php
文件中创建一条新路线即可。然后你可以简单地调用 Artisan::call()
方法。
例如,当您访问make-migration
路线时,您想要为Invoices table 创建一个迁移文件。您可以这样做:
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.';
});
阅读更多关于 运行ning Artisan 命令的编程方式 here。
希望对您有所帮助!
所以正如问题所说...当用户在网络浏览器中单击 link 时,有没有办法在后台 运行 php artisan 命令?
例如,我想在我的应用程序中创建一个用于迁移迁移文件的按钮,因此当单击此按钮时:
<a href="/migrate" class="btn btn-primary">Migrate</a>
我愿意运行
php artisan migrate
在后台。
这有可能吗?
当然可以!只需在 routes\web.php
文件中创建一条新路线即可。然后你可以简单地调用 Artisan::call()
方法。
例如,当您访问make-migration
路线时,您想要为Invoices table 创建一个迁移文件。您可以这样做:
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.';
});
阅读更多关于 运行ning Artisan 命令的编程方式 here。
希望对您有所帮助!