web-dev-qa-db-ja.com

読み取り可能な配列を表示する方法-Laravel

書いた後:

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

そして、ブラウザを更新した後、読み取り不能な配列を取得します。その配列を読み取り可能な形式で取得する方法はありますか?

16
Gilko

dd()は変数をダンプし、スクリプトの実行を終了します (1)、そのため_<pre>_タグで囲むと壊れたままになります。良いol 'var_dump()(または配列であることがわかっている場合はprint_r())を使用してください

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

更新:

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;
}
_
26
Damien Pirsy

実際に(おそらく)見たいものの読み取り可能な配列を取得するはるかに簡単な方法は、使用する代わりに

dd($users); 

または

dd(User::all());

これを使って

dd($users->toArray());

または

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

これはデバッグするのにはるかに優れています。

編集-さらに、これはビュー/テンプレートでもうまく機能するので、すべてのユーザーをテンプレートに渡すと、ブレードテンプレートにダンプできます

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

おそらくkintを試してください:composer require raveren/kint "dev-master"詳細: なぜデバッグデータがフォーマットされていないのですか?

3
Juan

まだこれを実現するための素晴らしい方法を探している人にとって、推奨される方法は_symfony/var-dumper_のdump()関数です。

バージョン5.2以降のドキュメントに追加されます: https://laravel.com/docs/5.2/helpers#method-dd

2
Angelin Calu

このコードはview.bladeで使用できます。 {{var_dump($ animales)}}

0
JairoX

ヘルパーda()をLaravel=に追加しました。これは実際にはdd($object->toArray())のエイリアスとして機能します

ここに要点があります: https://Gist.github.com/TommyZG/0505eb331f240a6324b0527bc588769c

0
TommyZG

コントローラー関数を介して、Blade themplateでvar_dumpまたはprint_r関数を使用できます。

class myController{

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

そして、ブレードthemplateを使用します:

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