Как отобразить читаемый массив - 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

Другие вопросы по тегам