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

希望对您有所帮助!