如何显示可读数组 - Laravel

Gil*_*lko 17 php arrays function readable laravel

写完之后:

Route::get('/', function()
{
    dd(User::all());
});
Run Code Online (Sandbox Code Playgroud)

刷新浏览器后,我得到一个不可读的数组.有没有办法以可读格式获取该数组?

Dam*_*rsy 28

dd()转储变量并结束脚本(1)的执行,因此用<pre>标签包围它会使它断开.只需使用好的'' var_dump()(print_r()如果你知道它是一个数组)

Route::get('/', function()
{
    echo '<pre>';
    var_dump(User::all());
    echo '</pre>';
    //exit;  <--if you want
});
Run Code Online (Sandbox Code Playgroud)

更新:

我想你可以通过让Laravel将模型对象转换为数组来格式化显示的内容:

Route::get('/', function()
{
    echo '<pre>';
    $user = User::where('person_id', '=', 1);
    var_dump($user->toArray()); // <---- or toJson()
    echo '</pre>';
    //exit;  <--if you want
});
Run Code Online (Sandbox Code Playgroud)

(1)对于记录,这是dd()的实现:

function dd()
{
    array_map(function($x) { var_dump($x); }, func_get_args()); die;
}
Run Code Online (Sandbox Code Playgroud)


Joh*_*ith 23

实际上,一种更简单的方法来获得您(可能)想要看到的可读数组,而不是使用

dd($users); 
Run Code Online (Sandbox Code Playgroud)

要么

dd(User::all());
Run Code Online (Sandbox Code Playgroud)

用这个

dd($users->toArray());
Run Code Online (Sandbox Code Playgroud)

要么

 dd(User::all()->toArray());
Run Code Online (Sandbox Code Playgroud)

调试好多了.

编辑 - 附加,这也适用于您的视图/模板,因此如果您将所有用户传递到模板,则可以将其转储到您的刀片模板中

{{ dd($users->toArray()) }}
Run Code Online (Sandbox Code Playgroud)

  • 这是在Laravel中做到这一点的正确(和更好)方式. (2认同)