After I write:
Route::get('/', function()
{
dd(User::all());
});
And after I refresh the browser I get an unreadable array. Is there a way to get that array in a readable format?
actually a much easier way to get a readable array of what you (probably) want to see, is instead of using
dd($users);
or
dd(User::all());
use this
dd($users->toArray());
or
dd(User::all()->toArray());
which is a lot nicer to debug with.
EDIT - additional, this also works nicely in your views / templates so if you pass the get all users to your template, you can then dump it into your blade template
{{ dd($users->toArray()) }}
I have added a helper da()
to Laravel which in fact works as an alias for dd($object->toArray())
Here is the Gist: https://gist.github.com/TommyZG/0505eb331f240a6324b0527bc588769c
Maybe try kint: composer require raveren/kint "dev-master" More information: Why is my debug data unformatted?
You can use var_dump
or print_r
functions on Blade themplate via Controller functions :
class myController{
public function showView(){
return view('myView',["myController"=>$this]);
}
public function myprint($obj){
echo "<pre>";
print_r($obj);
echo "</pre>";
}
}
And use your blade themplate :
$myController->myprint($users);
For everyone still searching for a nice way to achieve this, the recommended way is the dump()
function from symfony/var-dumper
.
It is added to documentation since version 5.2: https://laravel.com/docs/5.2/helpers#method-dd
dd()
dumps the variable and ends the execution of the script (1), so surrounding it with<pre>
tags will leave it broken. Just use good ol'var_dump()
(orprint_r()
if you know it's an array)Update:
I think you could format down what's shown by having Laravel convert the model object to array:
(1) For the record, this is the implementation of dd():