我喜欢使用dd
函数进行调试。这次当我用它来显示约会列表时,我看不到(没有可点击的箭头)属性和原始数据。我显示的是括号[ …19]
,而不确定原因。
Collection {#3061 ▼
#items: array:548 [▼
0 => Appointment {#821 ▼
#table: "appointments"
#fillable: array:16 [ …16]
#connection: null
#primaryKey: "id"
#perPage: 15
+incrementing: true
+timestamps: true
#attributes: array:19 [ …19]
#original: array:19 [ …19]
#relations: array:2 [ …2]
#hidden: []
#visible: []
#appends: []
#guarded: array:1 [ …1]
#dates: []
#dateFormat: null
#casts: []
#touches: []
#observables: []
#with: []
#morphClass: null
+exists: true
+wasRecentlyCreated: false
}
1 => Appointment {#822 ▶}
2 => Appointment {#823 ▶}
3 => Appointment {#824 ▶}
4 => Appointment {#825 ▶}
5 => Appointment {#826 ▶}
6 => Appointment {#827 ▶}
7 => Appointment {#828 ▶}
后来在列表中,我甚至看不到约会内部(没有箭头):
81 => Appointment {#902 ▶}
82 => Appointment {#903 ▶}
83 => Appointment {#904 ▶}
84 => Appointment {#905 ▶}
85 => Appointment {#906 …23}
86 => Appointment {#907 …23}
87 => Appointment {#908 …23}
88 => Appointment {#909 …23}
89 => Appointment {#910 …23}
90 => Appointment {#911 …23}
但是当我使用var_dump时,我的数据看起来很好:
array(548) {
[0]=>
array(21) {
["id"]=>
int(149)
["appointmenttype_id"]=>
NULL
["appointmentlocationtype_id"]=>
NULL
["appointment_start"]=>
object(Carbon\Carbon)#812 (3) {
["date"]=>
string(26) "2015-12-21 07:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(16) "America/New_York"
}
["appointment_end"]=>
object(Carbon\Carbon)#811 (3) {
["date"]=>
string(26) "2015-12-21 09:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(16) "America/New_York"
}
其他人是否遇到过这种情况?
答案 0 :(得分:5)
这是一个不太知名的警告,它会返回太大的结果列表。通常,dd()
旨在快速概述您要返回的数据,并处理较小的数据组“向下钻取”。一旦你达到一定的数字(我忘了确切的一个,500可能?),那个功能就不再适用了。
如果您在某个地方的代码中使用此数据之前绝对需要查看此数据,请在limit()
结果之前使用get()
子句,或使用dd($example[0])
查看单个结果细节。希望有所帮助!
答案 1 :(得分:1)
.myTable th {
background-color: gray;
}
.myTable td:nth-child(odd),
.myTable th:nth-child(odd) {
background-color: blue;
}
中的错误不仅仅是如何配置基础Sympony VarDumper。
我相信有问题的行是this one,它将dd()
设置为20,但我没有检查过。
看着Laravel $maxDepth
logic似乎无论如何都不会在Laravel中覆盖它。
答案 2 :(得分:1)
我找到了解决这个问题的方法,虽然不推荐,如果你真的想要转储整个对象,请将以下代码片段添加到/bootstrap/autoload.php
if (! function_exists('dd')) {
/**
* Dump the passed variables and end the script.
*
* @param mixed
* @return void
*/
function dd()
{
array_map(function ($x) {
$dumper = 'cli' === PHP_SAPI ? new \Symfony\Component\VarDumper\Dumper\CliDumper() : new \Illuminate\Support\Debug\HtmlDumper();
$cloner = new \Symfony\Component\VarDumper\Cloner\VarCloner();
$cloner->setMaxItems(-1);
$cloner->setMaxString(-1);
$dumper->dump($cloner->cloneVar($x));
}, func_get_args());
die(1);
}
}
必须在行上方添加:
要求 DIR 。'/ .. / vendor / autoload.php';
它会覆盖laravel dd函数,并在转储之前在Symfony VarCloner对象上设置'setMaxItems'和'setMaxString'。