2014-03-24 88 views
0

我目前正在嘗試設置一個編輯頁面,其中使用json_decode填充訂單表單以解碼創建表單時保存的json信息。因爲表單的大小可能會發生變化,所以我必須創建正確數量的輸入,以便所有json數據都可以顯示。幸運的是,在輸入數據時,這不應該很難。不幸的是,我不知道如何選擇已解碼的json信息的最後一個元素。目前我使用:Laravel 4 foreach循環 - 想要顯示最後一個元素

public function getEdit($id){ 
     $order = Order::where('id', '=', $id); 

     if($order->count()) { 
      $order      = $order->first(); 
      $order->order_serialized = json_decode($order->order_serialized); 

      foreach($order->order_serialized as $key => $value){ 
       $order->$key = $value; 
      } 
      return View::make('orders.edit') 
        ->with('order', $order); 
     } else { 
      return App::abort(404); 
     } 
    } 

對信息進行解碼,它是工作出色,但我需要能夠拿起最後一個元素是能夠找到的總輸入量,我不知道我怎麼會在不干擾foreach循環的情況下做到這一點。任何和所有的幫助將不勝感激!非常感謝!

回答

3

您可以使用counttoArray方法查找最後一個項目。

$nItem = $order->count(); 
$aOrder = $order->toArray(); 
$aLastItem = $aOrder[$nItem-1]; 
+0

謝謝!這聽起來像是我正在尋找的。 – mario

+0

快速的問題 - 它說「未定義的偏移:6」任何想法這意味着什麼? – mario

+1

你確定數組的索引是數字而不是列名嗎?未定義偏移量6意味着它正在尋找不存在的$ aOrder [6] –

3

收藏有last()功能恭維first()功能。

+0

我試圖使用最後()這樣的foreach ($命令 - > order_serialized爲$密鑰=> $值){ \t \t \t \t $順序 - > $鍵= $值; \t \t \t \t如果($順序 - > $鍵 - >最後()){ \t \t \t \t \t $ last_element = $順序 - > $密鑰; \t \t \t \t}; \t \t \t} 但調試說我試圖在非對象上使用它。 – mario

+2

不在foreach循環之外,就像$ order-> last()是$ order對象的最後一行 –

+0

對不起,我以前沒有看到您的評論。這看起來不錯。我只是有一個簡單的問題。在我的數據庫中,表單的所有輸入都存儲在json_encoded info的「order_serialized」行中。爲了解決這個問題,我想使用: '$ order-> order_serialized = json_decode($ order-> order_serialized); $ last_item \t \t = $ order-> order_serialized-> last();' – mario

相關問題