我想知道是否可以在前端使用laravel artisan命令?如果是的话怎么样?
我的意思是:
例如,为了使网站进入维护模式,我们使用php artisan down
所以我想知道是否有我的管理员将其作为一个选项,让他们的网站通过例如一些复选框进入维护模式? / p>
此外,这也可用于更新.env
文件代码。
有什么想法吗?
答案 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');
以重新缓存配置。