webentwicklung-frage-antwort-db.com.de

Anzeigen eines lesbaren Arrays - Laravel

Nachdem ich geschrieben habe:

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

Und nachdem ich den Browser aktualisiert habe, bekomme ich ein nicht lesbares Array. Gibt es eine Möglichkeit, dieses Array in einem lesbaren Format zu erhalten?

14
Gilko

dd() speichert die Variable und beendet die Ausführung des Skripts (1)Wenn Sie ihn mit <pre>-Tags umgeben, wird er beschädigt. Verwenden Sie einfach gute ol 'var_dump() (oder print_r(), wenn Sie wissen, dass es ein Array ist)

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

Update:

Ich denke, Sie könnten das Dargestellte formatieren, indem Sie das Modellobjekt von Laravel in ein Array konvertieren lassen:

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

(1) Für das Protokoll ist dies die Implementierung von dd ():

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

eine viel einfachere Methode, um ein lesbares Array von dem zu erhalten, was Sie (wahrscheinlich) sehen möchten, ist statt zu verwenden

dd($users); 

oder 

dd(User::all());

benutze das 

dd($users->toArray());

oder

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

was ist viel schöner zu debuggen.

EDIT - außerdem funktioniert dies auch gut in Ihren Ansichten/Vorlagen Wenn Sie also alle Benutzer an Ihre Vorlage übergeben, können Sie sie in Ihre Blade-Vorlage kopieren

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

Vielleicht versuchen Sie es mit kint: composer erfordert raveren/kint "dev-master" Weitere Informationen: Warum sind meine Debug-Daten nicht formatiert?

3
Juan

Für alle, die noch einen schönen Weg suchen, um dies zu erreichen, wird die Funktion dump() von symfony/var-dumper empfohlen. 

Es wird seit Version 5.2 der Dokumentation hinzugefügt: https://laravel.com/docs/5.2/helpers#method-dd

2
Angelin Calu

Sie können diesen Code für view.blade . {{Var_dump ($ animales)}} verwenden.

0
JairoX

Ich habe Laravel einen Helfer da() hinzugefügt, der tatsächlich als Alias ​​für dd($object->toArray()) fungiert.

Hier der Gist: https://Gist.github.com/TommyZG/0505eb331f240a6324b0527bc588769c

0
TommyZG

Sie können var_dump oder print_r Funktionen in der Blade-Vorlage über Controller-Funktionen verwenden: 

class myController{

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

Und verwenden Sie Ihre Blade-Vorlage:

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