2017-06-21 37 views
0

我在PHP框架Laravel 5上工作,這裏是我的問題: 我從我的數據庫中獲得了具有多個值的對象。 當我回應這個,它會顯示所有正確的數據,但是,只要我把它轉換成一個數組,它變成了一個空數組,爲什麼?PHP對象在向數組輸入時丟失其數據

$TonnageTotal = Collecte\Produit::pluck('tonnage'); //put everything I need into $TonnageTotal 
$arrTonnage = get_object_vars($TonnageTotal); //then cast it 

它做同樣的,如果我這樣做:

$arrTonnage=(array)$TonnageTotal; 

價值我想是整數,意味着是array_sum();

我錯過了什麼?

+1

get_object_vars只讓你_「可訪問的非靜態屬性」_ - 你確定這是所有有問題的屬性的情況? – CBroe

+1

Laravel模型屬性不是簡單的屬性,它們在內部使用魔術來使它們可訪問,因此它們不會直接轉換爲數組屬性....這就是爲什麼Laravel提供'toArray()'和其他類似方法 –

+0

'對,謝謝你的幫助 – natifice

回答

0

您可以使用toArray()方法將集合轉換爲數組。

$arrTonnage = $TonnageTotal->toArray(); 
+0

謝謝,它的工作原理 – natifice