一个在PHP调试的最流行的方式仍然是相同的 - 在浏览器中显示的变量,希望能找出错误是什么。 Laravel具有显示变量的特定短助手功能 - dd()
- 代表“Dump and Die”
,但它并不总是方便。什么是其他选项?
注意下面提到的方法是寻找到我们班的失败,什么都可用我们的查询执行后的情况。打印之前我们的预期结果是什么。此方法是根据is要求找出错误的最佳方法。
首先,dd()有什么问题?好吧,让我们说,我们想从数据库表中的所有行和甩掉他们:
$methods = PaymentMethod::all();
dd($methods);
我们会看到这样的:
但你明白了吧 - 看到的实际值,我们需要再点击三次,如果没有这些操作,我们看不到完整的结果。起初我想 - 也许dd()函数有一些参数呢?不幸的是,因此,让我们来看看其他的选择:
的var_dump()和死亡():
$methods = PaymentMethod::all();
var_dump($methods);
die();
我们现在看到的:表现出任何类型的数据的
好老PHP方式
但还有更多可读的方式。
另一个PHP内置函数print_r()
对我们一个完美的描述:
$methods = PaymentMethod::all();
print_r($methods);
die();
然后去查看浏览器的源代码“打印关于变量人类可读的信息” ...我们得到这样的:
现在
,我们可以很容易地阅读的内容,并尝试进行调查错误。
此外,print_r()
函数有另一个可选参数与真/假值 - 你不能只回应该变量,但将其作为字符串返回到另一个变量。然后,您可以将多个变量合并为一个,例如可能将其记录在某处。
所以,在这样的情况下,dd()
不是那么方便 - PHP原生函数来解救。但是,如果你想让脚本从字面上“转储一个简单的变量并且死掉” - 然后dd($var) is probably the fastest to type
。
没有定义功能,u需要检查它'的var_dump($组);' – devpro
我得到相同的 - >查找() 的isEmpty()被描述为返回true或false,不产生错误。 它可能从5.2中的Eloquent中移除了吗? – Mladen