写完之后:
Route::get('/', function()
{
dd(User::all());
});
刷新浏览器后,我得到一个不可读的数组。有没有办法以可读的格式获取该数组?
答案 0 :(得分:24)
dd()
转储变量并结束脚本(1)的执行,因此用<pre>
标签包围它会使其断开。只需使用好的'var_dump()
(或print_r()
,如果你知道它是一个数组)
Route::get('/', function()
{
echo '<pre>';
var_dump(User::all());
echo '</pre>';
//exit; <--if you want
});
<强>更新强>
我认为你可以通过让Laravel将模型对象转换为数组来格式化显示的内容:
Route::get('/', function()
{
echo '<pre>';
$user = User::where('person_id', '=', 1);
var_dump($user->toArray()); // <---- or toJson()
echo '</pre>';
//exit; <--if you want
});
(1)对于记录,这是dd()的实现:
function dd()
{
array_map(function($x) { var_dump($x); }, func_get_args()); die;
}
答案 1 :(得分:20)
实际上,一种更简单的方法来获得您(可能)想要看到的可读数组,而不是使用
dd($users);
或
dd(User::all());
使用此
dd($users->toArray());
或
dd(User::all()->toArray());
使用它进行调试要好得多。
编辑 - 另外,这在您的视图/模板中也很有效 因此,如果您将获取所有用户传递给模板,则可以将其转储到刀片模板中
{{ dd($users->toArray()) }}
答案 2 :(得分:3)
也许尝试kint:作曲家需要raveren / kint&#34; dev-master&#34; 更多信息:Why is my debug data unformatted?
答案 3 :(得分:2)
对于仍在寻找实现此目标的好方法的所有人,推荐的方法是来自dump()
的{{1}}函数。
自5.2版以来,它已添加到文档中: https://laravel.com/docs/5.2/helpers#method-dd
答案 4 :(得分:0)
您可以在view.blade上使用此代码。 {{的var_dump($阿尼马莱斯)}}
答案 5 :(得分:0)
您可以通过控制器功能在Blade模板上使用var_dump
或print_r
功能:
class myController{
public function showView(){
return view('myView',["myController"=>$this]);
}
public function myprint($obj){
echo "<pre>";
print_r($obj);
echo "</pre>";
}
}
使用你的刀片themplate:
$myController->myprint($users);
答案 6 :(得分:0)
我已经向Laravel添加了一个帮助da()
,实际上它可以作为dd($object->toArray())
的别名
这是要点:https://gist.github.com/TommyZG/0505eb331f240a6324b0527bc588769c
答案 7 :(得分:0)
根据建议,您可以使用诸如
之类的“ die and dump”
dd($var)
或只是“转储”而不会死,
dump($var)