После того, как я напишу:
Route::get('/', function()
{
dd(User::all());
});
И после обновления браузера я получаю нечитаемый массив. Есть ли способ получить этот массив в читаемом формате?
После того, как я напишу:
Route::get('/', function()
{
dd(User::all());
});
И после обновления браузера я получаю нечитаемый массив. Есть ли способ получить этот массив в читаемом формате?
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;
}
на самом деле гораздо более простой способ получить читаемый массив того, что вы (возможно) хотите увидеть, вместо использования
dd($users);
или
dd(User::all());
используйте этот
dd($users->toArray());
или
dd(User::all()->toArray());
что намного легче отлаживать с помощью.
EDIT - дополнительно, это также прекрасно работает в ваших представлениях/шаблонах поэтому, если вы передадите все пользователи в свой шаблон, вы можете сбрасывать его в свой шаблон клипа
{{ dd($users->toArray()) }}
Может быть, попробуйте kint: композитор требует raveren/kint "dev-master" Дополнительная информация: Почему мои отладочные данные неформатированы?
Для всех, кто все еще ищет хороший способ достичь этого, рекомендуемым способом является функция dump()
от symfony/var-dumper
.
Он добавлен в документацию с версии 5.2: https://laravel.com/docs/5.2/helpers#method-dd
Вы можете использовать этот код на view.blade. {{Var_dump ($ Animales)}}
Вы можете использовать функции 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);
Я добавил вспомогательный da()
в Laravel, который фактически работает как псевдоним для dd($object->toArray())
Вот Gist: https://gist.github.com/TommyZG/0505eb331f240a6324b0527bc588769c