Laravel 5.6无需命令即可启动站点

cha*_*ami 6 php laravel artisan laravel-5.6

我有一个Laravel 5.6网站,我希望为非技术管理员启用此功能,以便他可以在任何时间点关闭或提升网站.

我已经成功使用了网站

    Route::get('shut/down', function() {
        `Artisan::call('down');`
    });
Run Code Online (Sandbox Code Playgroud)

但是,当我希望我的应用程序使用此备份时

Route::get('bring/the/application/back/up', function() 
{
    Artisan::call('up');
});
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为我的网站已经关闭,所以这不起作用.但是在命令行中我们有一些命令可以通过它们排除维护模式的IP地址.


示例: php artisan down --allow=127.0.0.1 --allow=192.168.0.0/16

我们是否有任何解决方法可以在不使用命令行方法的情况下排除某些选定的IP地址,或者在不使用命令的情

IlG*_*ala 2

您必须仔细查看官方文档,其中解释了如何以编程方式调用命令:

有时您可能希望在 CLI 之外执行 Artisan 命令。例如,您可能希望从路线或控制器触发 Artisan 命令。您可以使用 Artisan 外观上的 call 方法来完成此操作。call 方法接受命令的名称或类作为第一个参数,并接受命令参数数组作为第二个参数。将返回退出代码:

Route::get('/foo', function () {
    $exitCode = Artisan::call('email:send', [
        'user' => 1, '--queue' => 'default'
    ]);

    //
});
Run Code Online (Sandbox Code Playgroud)

因此,在您的情况下,您必须更新您的路线回调:

Route::get('shut/down', function() {
    Artisan::call('email:send', [
        '--allow' => 'xxxx.xxxx.xxxx.xxxx' // Your ip address
    ]);
});
Run Code Online (Sandbox Code Playgroud)

这样你的ip地址就可以访问该bring/the/application/back/up地址了。无论如何,如果您只想简单地“隐藏”前端,通过创建一个特定的变量(配置、数据库等)来“隐藏”网站,但保留管理面板以便激活/停用,我会寻找不同的解决方案以更简单的方式。