Как отобразить читаемый массив - Laravel

После того, как я напишу:

Route::get('/', function()
{
    dd(User::all());
});

И после обновления браузера я получаю нечитаемый массив. Есть ли способ получить этот массив в читаемом формате?

Ответ 1

dd() выгружает переменную и завершает выполнение script (1) поэтому окружающие его теги <pre> оставят его сломанным. Просто используйте good ol 'var_dump() (или print_r(), если вы знаете его как массив)

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

Update:

Я думаю, вы можете отформатировать то, что показано, если 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;
}

Ответ 2

на самом деле гораздо более простой способ получить читаемый массив того, что вы (возможно) хотите увидеть, вместо использования

dd($users); 

или

dd(User::all());

используйте этот

dd($users->toArray());

или

 dd(User::all()->toArray());

что намного легче отлаживать с помощью.

EDIT - дополнительно, это также прекрасно работает в ваших представлениях/шаблонах поэтому, если вы передадите все пользователи в свой шаблон, вы можете сбрасывать его в свой шаблон клипа

{{ dd($users->toArray()) }}

Ответ 4

Для всех, кто все еще ищет хороший способ достичь этого, рекомендуемым способом является функция dump() от symfony/var-dumper.

Он добавлен в документацию с версии 5.2: https://laravel.com/docs/5.2/helpers#method-dd

Ответ 5

Вы можете использовать этот код на view.blade. {{Var_dump ($ Animales)}}

Ответ 6

Вы можете использовать функции var_dump или print_r на пластине Blade с помощью функций контроллера:

class myController{

   public function showView(){
     return view('myView',["myController"=>$this]);
   }
   public function myprint($obj){
     echo "<pre>";
     print_r($obj);
     echo "</pre>";
   }
}

И используйте плиту клинка:

$myController->myprint($users);