2016-10-18 24 views
0

Laravelが新しく、ビューにデータを渡すときに間違ったことをしています。ここでLaravelのViewで非オブジェクトのプロパティを取得しようとしています

は、私は単純な配列を構築する私のルート、です:

Route::get('/', function() { 
    $data = []; 

    foreach(App\User::all() as $user) { 
     foreach($user->orders as $order) { 
      foreach ($order->sub_orders as $sub_order) { 
       $data[] = 
        [ 
         'customer_id' => $user->id, 
         'customer_name' => $user->name, 
         'city' => $user->city, 
         'order_id' => $order->id, 
         'order_date' => $order->created_at->format('Y-m-d H:i:s'), 
         'sub_order_id' => $sub_order->id, 
         'item_name' => $sub_order->item->name, 
         'quantity' => $sub_order->quantity, 
         'unit_price' => $sub_order->item->unit_price, 
         'total_price' => $sub_order->item->unit_price * $sub_order->quantity, 
         'delivery_date' => $sub_order->delivery_date, 
         'delivery_status' => $sub_order->delivery_status 
        ]; 
      } 
     } 
    } 

    return view('welcome', ["data" => $data]); 
}); 

そして、ここでは、私は、ビュー側でそれをしようとしています方法は次のとおりです。

@foreach ($data as $row) 
    <tr> 
    <td> {{ $row->customer_id }} </td> 
    </tr> 
@endforeach 

これは私にエラーTrying to get property of non-objectを与えますライン<td> {{ $row->customer_id }} </td>。私は何が間違っているのか分かりません。 :|

また、ビューで受信したデータはddまたはvar_dumpにはありますか?

答えて

2

$rowが配列され、オブジェクトではない:あなたはこのためにすることができます。うん、あなたはそれを見るためにビューでprint_r($data);を使用することができますかvar_dumpまたはddを使用することができます。そして、あなたは

$row['customer_id']; 

PS経由でアクセスすることができます。

+1

や 'ダンプ($データ)'も可能です。 –

+0

私たちはこれらの関数にPHPタグを使う必要があると思います。 – dotslash

+0

これらの機能を '{{}}'の中に置くこともできます。 –

0

$rowは連想配列です。

@foreach ($data as $row) 
    <tr> 
     <td> {{ $row['customer_id'] }} </td> 
    </tr> 
@endforeach 
1

$row->customer_id$row['customer_id']に置き換えてarray値にアクセスします。

+0

* FACEPALM *:P:P – dotslash

0

$rowは、その連想配列ではありません。 Accessがこの

$row['customer_id']; 

ようにあなたは、データを見るためにddを使用することができます:)

関連する問題