2017-01-30 3 views
0

Ich bin absolut neu in PHP und darüber hinaus in Laravel Rahmen und ich habe das folgende Problem.Wie kann ich den Objektinhalt in PHP korrekt drucken?

ich tue:

$attributes = array(
     'id' => $dettagliLogin->id, 
     'username' => $dettagliLogin->email, 
     'name' => $dettagliLogin->userName, 
    ); 

    $user = new GenericUser($attributes); 

    \Log::info('USER: '.(var_dump(($user)))); 

Wo die letzte Zeile:

\Log::info('USER: '.(var_dump(($user)))); 

sollten den Inhalt des $ user Objekt in eine Protokolldatei schreiben.

Das Problem ist, dass in meine Log-Datei erhalte ich diese Ausgabe:

[2017-01-30 10:25:19] local.INFO: USER: 

so ist es, als dieses Objekt leer ist, aber ich denke, dass es nicht leer ist, weil dann verwendet wird.

Warum? Wie kann ich den Objektinhalt korrekt drucken?

+0

Wenn Sie nur drucken möchten, versuchen Sie 'dd ($ user);' – EddyTheDove

+1

var_dump() wird auf dem Bildschirm angezeigt; var_export() gibt eine Variable mit dem Anzeigeinhalt zurück, der in eine Protokolldatei geschrieben werden kann –

Antwort

2

Sie wollen var_export verwenden - als truehere's the docs

\Log::info('USER: ' . var_export($user, true)); 

Mit dem zweiten param Satz exportiert diese den Inhalt der gelieferten Variable als zuweisbare String, anstatt sie direkt auf der Seite zu drucken.

Bearbeiten: Ich habe auch Ihren Code ein wenig aufgeräumt, wie Sie ein bisschen verrückt mit Zahnspange gegangen waren!

-2

Vielleicht haben Sie zu viele ‚(‘

Versuchen:.

\Log::info('USER: '.var_dump($user)); 

Wenn es nicht Ihre Var_dump zwingen funktioniert ein String zu sein, aber normalerweise brauchen Sie nicht zu tun

Hoffe, es wird Ihnen helfen :)

1

var_dumpdoes not have any return value, gibt sie direkt an stdout. Deshalb siehst du dort nichts.

Verwenden Sie var_export mit einem zweiten Parameter von true, um den Inhalt in einer Zeichenfolge zu speichern.

Verwandte Themen