Laravel命令行在前端

时间:2017-05-29 07:44:00

标签: php laravel

我想知道是否可以在前端使用laravel artisan命令?如果是的话怎么样?

我的意思是:

例如,为了使网站进入维护模式,我们使用php artisan down所以我想知道是否有我的管理员将其作为一个选项,让他们的网站通过例如一些复选框进入维护模式? / p>

此外,这也可用于更新.env文件代码。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您可以从路由器或控制器中调用Artisan,如下所示:

Artisan::call('down');

请注意,您可能会收到此错误:

Use of undefined constant STDIN

您可以通过将此代码段放在Artisan电话之前修复:

define('STDIN',fopen("php://stdin","r"));

答案 1 :(得分:0)

是的,你可以。但在你的情况下,它不可行。您可以使用控制器中的Artisan::call('command-name')调用所有命令。因此,您可以从前端传递请求并在控制器中处理它们以执行适当的命令。

但是在使用down命令将网站置于维护模式的示例中,这将是不正确的。您可以通过管理员从控制器中呼叫Artisan::call('down');。但是一旦网站进入维护模式,即使是管理员也无法访问它,因此无法从控制面板/仪表板中获取它。 Laravel的默认中间件会让所有人都关闭网站,但是如果你自定义中间件以允许管理员以维护模式访问网站,你就可以使用它。

至于修改.env文件,它只是一个可以像任何其他文件一样修改的文件。但请注意,配置可能会根据您的部署进​​行缓存,您需要运行Artisan::call('config:clear');来清除或Artisan::call('config:cache');以重新缓存配置。