Laravel 5.调试模式

8

我在config->app中将debug模式设置为true,并将其部署到服务器上:

'debug' => env('APP_DEBUG', true),

我在控制器中有以下代码来检查模式:

...
$debug = config('app.debug');
var_dump($debug);
$product->save();

本地机器上的结果:

C:\xampp\htdocs\MK\app\Http\Controllers\ProductController.php:45:boolean true

服务器上的结果:

bool(false) 糟糕,好像出了点问题。

为什么服务器端没有设置调试模式?


3
请检查服务器和本地机器上的 .env 文件中的 APP_DEBUGAPP_ENV 值。它们是否相同? - Alexey Mezenin
4个回答

16

你配置文件中的这一行,'debug' => env('APP_DEBUG', true),可能是你遇到问题的原因。

它的意思是:将debug设为我在.env文件中定义的值,如果没有则使用true

因此,即使你将第二个参数设置为true,它仍会查找你.env文件中的APP_DEBUG=false

尝试将.env文件中的设置更新为true。


3

首先需要激活调试模式!并将APP_ENV设置为本地环境

现在该怎么做呢?我们需要检查多个位置。

.env文件

APP_ENV=local
APP_DEBUG=true

确保它们不被设置两次!您可以使用#取消注释并添加# APP_ENV=production

非常重要的是,您需要将APP_ENV更改为local

检查一下,您可以运行

php artisan env

你会得到类似这样的东西:

enter image description here

config/app.php

下一步需要检查的是config/app.php
要知道.env文件会被这个文件处理!而这个文件就是管理配置的地方! 检查配置行是否被删除或注释掉!(这取决于是全新安装还是已经在项目上工作过)
根据你使用的Laravel版本,可能会略有不同!
但重点是确保加载了.env配置,否则它将默认为true
'debug' => env('APP_DEBUG', true) // second param the default value

在我们当前的项目中,设置如下:
'debug' => (function_exists('env')) ? env('APP_DEBUG', true) : true,

它检查环境是否存在!如果存在,则使用它!如果不存在,则直接设置默认值!

我的队友没有注意到这一点!结果他遇到了错误!因为在我们之前,有人将其更改为以下内容(并被注释掉):

enter image description here

这张图片是为了说明错误的发生方式,也是为了导航清晰。

最重要的是检查一下,确保一切都没问题!(如果一切正常,那就继续下一步)

好的,所有设置完成但不起作用

是预料中的情况!

清除视图和缓存

重要的是要知道你可能需要清除缓存。

运行

php artisan view:clear

并且

php artisan cache:clear

之后它应该可以工作了!

如果还是不行!

文件权限

可能存在文件系统权限问题!

检查一下这个。

https://dev59.com/nl4d5IYBdhLWcg3wFPM7#28063794

预期的调试视图

enter image description here

Laravel美丽的调试界面 ❤️


1
在您的情况下,只需转到您的.env文件并将"APP_DEBUG=false"更改为"APP_DEBUG=true"

0

您还可以从.env文件中更改设置:

APP_ENV=production
APP_DEBUG=false

APP_ENV=local
APP_DEBUG=true

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接