Как отобразить читаемый массив - Laravel
После того как я напишу:
Route::get('/', function()
{
dd(User::all());
});
А после обновления браузера я получаю нечитаемый массив. Есть ли способ получить этот массив в читаемом формате?
9 ответов
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;
}
На самом деле гораздо проще получить читаемый массив того, что вы (вероятно) хотите увидеть, вместо того, чтобы использовать
dd($users);
или же
dd(User::all());
использовать этот
dd($users->toArray());
или же
dd(User::all()->toArray());
что намного приятнее для отладки.
РЕДАКТИРОВАТЬ - дополнительно, это также хорошо работает в ваших представлениях / шаблонах, поэтому, если вы передадите команду get all users в ваш шаблон, вы можете затем выгрузить его в свой шаблон blade-сервера.
{{ dd($users->toArray()) }}
Может быть, попробуйте kint: composer требуется raveren/kint "dev-master" Дополнительная информация: Почему мои отладочные данные не отформатированы?
Для всех, кто все еще ищет хороший способ достичь этого, рекомендуется dump()
функция от symfony/var-dumper
,
Он добавлен в документацию начиная с версии 5.2: https://laravel.com/docs/5.2/helpers.
Странно, что никто не указал на Symfony VarDumper, просто сделайте:
\Symfony\Component\VarDumper\VarDumper::dump($data);
Вы можете использовать этот код на view.blade. {{Var_dump($ Animales)}}
Как предлагается, вы можете использовать "умереть и сбросить", например
dd($var)
или только "свалить", не умирая,
dump($var)
Ты можешь использовать 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