web-dev-qa-db-fra.com

Comment afficher un tableau lisible - Laravel

Après j'écris:

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

Et après avoir actualisé le navigateur, je reçois un tableau illisible. Est-il possible d'obtenir ce tableau dans un format lisible?

14
Gilko

dd() vide la variable et termine l'exécution du script (1), si vous l’entourez de balises <pre>, il restera brisé. Utilisez juste le bon vieux var_dump() (ou print_r() si vous savez que c'est un tableau)

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

Mettre à jour:

Je pense que vous pouvez formater ce qui est montré en demandant à Laravel de convertir l'objet du modèle en tableau:

Route::get('/', function()
{
    echo '<pre>';
    $user = User::where('person_id', '=', 1);
    var_dump($user->toArray()); // <---- or toJson()
    echo '</pre>';
    //exit;  <--if you want
});

(1) Pour mémoire, voici l’implémentation de dd ():

function dd()
{
    array_map(function($x) { var_dump($x); }, func_get_args()); die;
}
23
Damien Pirsy

en fait, un moyen beaucoup plus facile d’obtenir un tableau lisible de ce que vous voulez (probablement) voir, est au lieu d’utiliser

dd($users); 

ou 

dd(User::all());

utilisez ceci 

dd($users->toArray());

ou

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

ce qui est beaucoup plus agréable pour déboguer.

EDITER - supplémentaire, cela fonctionne également bien dans vos vues/modèles. Si vous transmettez à tous les utilisateurs de votre modèle, vous pouvez le vider dans votre modèle de lame.

{{ dd($users->toArray()) }}
20
John Smith

Essayez peut-être kint: composer require raveren/kint "dev-master" Plus d'informations: Pourquoi mes données de débogage sont-elles non formatées?

3
Juan

Pour tous ceux qui recherchent toujours un moyen agréable d’y parvenir, la méthode recommandée est la fonction dump() de symfony/var-dumper

Il est ajouté à la documentation depuis la version 5.2: https://laravel.com/docs/5.2/helpers#method-dd

2
Angelin Calu

Vous pouvez utiliser ce code sur view.blade . {{Var_dump ($ animales)}}

0
JairoX

J'ai ajouté un assistant da() à Laravel qui fonctionne en fait comme un alias pour dd($object->toArray())

Voici le Gist: https://Gist.github.com/TommyZG/0505eb331f240a6324b0527bc588769c

0
TommyZG

Vous pouvez utiliser les fonctions var_dump ou print_r sur le modèle de lame via les fonctions du contrôleur: 

class myController{

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

Et utilisez votre modèle de lame:

$myController->myprint($users);
0
Ferhat KOÇER