2016-10-18 41 views
0

我是新來的Laravel,我認爲試圖使傳遞到視圖中的數據時,我做錯了什麼。試圖讓在查看非對象的屬性在Laravel

這是我的路,我在那裏建立一個簡單的數組:

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>。我不明白我做錯了什麼。 :|

此外,有沒有任何方式ddvar_dump在視圖中接收到的數據?

回答

2

$row是數組而不是對象。並且你可以通過

$row['customer_id']; 

PS訪問:是的,你可以使用print_r($data);在視圖中看到它或可以使用var_dumpdd

+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不是一個對象,它的關聯數組。訪問像這樣

$row['customer_id']; 

可以使用dd看到數據:)

相關問題