在我写完之后:
Route::get('/', function()
{
dd(User::all());
});
刷新浏览器后,我得到一个不可读的数组。有没有办法以可读格式获取该数组?
dd()
转储变量并结束脚本(1)的执行,因此用<pre>
标签包围它会使其损坏。只需使用好的 ol' 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;
}
实际上,获得您(可能)想要看到的可读数组的一种更简单的方法是,而不是使用
dd($users);
或者
dd(User::all());
用这个
dd($users->toArray());
或者
dd(User::all()->toArray());
调试起来要好得多。
编辑 - 另外,这在您的视图/模板中也可以很好地工作,因此如果您将 get all users 传递给您的模板,您可以将其转储到您的刀片模板中
{{ dd($users->toArray()) }}
也许尝试 kint:composer require raveren/kint "dev-master" 更多信息:为什么我的调试数据未格式化?
对于仍在寻找实现此目的的好方法的每个人,推荐的方法是dump()
函数 from symfony/var-dumper
。
它从 5.2 版开始添加到文档中: https ://laravel.com/docs/5.2/helpers#method-dd
您可以在 view.blade 上使用此代码。{{var_dump($animales)}}
您可以通过控制器功能在 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>";
}
}
并使用您的刀片模板:
$myController->myprint($users);
我da()
在 Laravel 中添加了一个助手,它实际上是dd($object->toArray())
这是要点:https ://gist.github.com/TommyZG/0505eb331f240a6324b0527bc588769c
如建议的那样,您可以使用“死和转储”,例如
dd($var)
或仅使用“转储”,而不会死,
dump($var)
奇怪的是,没有人向 Symfony VarDumper 指出,只需这样做:
\Symfony\Component\VarDumper\VarDumper::dump($data);