如果我執行以下查詢:如何以數組形式輸出Laravel 4查詢構建器查詢?
$lookupConnection = DB::connection(PZ_CONNECTION)->table($this->createLookupTable);
$lookupConnection->addSelect($lookupField);
$lookupConnection->where($searchField['data_lookup'], '=', $searchArray[$searchField['js_name']]);
$goodData = $lookupConnection->get();
dd($goodData);
這將工作,並顯示包含對象的陣列。
Array(1) {
[0] =>
object(stdClass)#225 (2) {
["foo"] => string(3) "bar"
}
}
我的問題是,如何在不知道元素是什麼的情況下訪問對象的元素?
我的意思是,字段中,儲存在$ lookupField,但是,我不能運行:
echo $goodData[0]->$lookupField
如果我嘗試
echo $goodData[0][$lookupField]
我也得到一個錯誤。
但如果我嘗試
echo $goodData[0]->foo
然後,它的工作原理。但那不行,因爲我直到運行時才知道$ lookupField的內容是什麼。我需要將查詢作爲數組輸出,或通過變量訪問對象數據,但我不知道如何。
$ php artisan tinker
[1] > $field = 'title';
// 'title'
[2] > $p = Promotion::all();
// object(Illuminate\Database\Eloquent\Collection)(
//
//)
[3] > $p[0]->$field;
// 'Test Promotion'
或者與查詢生成器:
你會收到什麼錯誤? – ceejayoz 2014-09-05 17:08:28
你可以執行json編碼,然後json解碼來獲得普通數組而不是對象數組。然後你可以壓扁數組或循環查找屬性。 – 2014-09-05 17:17:10
嗯,問題是我實際上沒有使用$ lookupField,我使用$ anObject - > $ lookupfield [$ n]。所以實際的行會是$ goodData [0] - > $ anObject-> lookupField [$ n]如果我添加了 $ lField = $ anObject-> lookupField [$ n],那麼我可以做$ goodData [0] - > $ lField – Puzbie 2014-09-05 17:28:39