Php 如何将Laravel 4查询生成器查询输出为数组?

Php 如何将Laravel 4查询生成器查询输出为数组?,php,laravel-4,Php,Laravel 4,如果我执行以下查询: $lookupConnection = DB::connection(PZ_CONNECTION)->table($this->createLookupTable); $lookupConnection->addSelect($lookupField); $lookupConnection->where($searchField['data_lookup'], '=', $searchArray[$searchField['js_name']]);

如果我执行以下查询:

$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的内容是什么。我需要将查询输出为数组,或者通过变量访问对象数据,但我不知道如何操作。

在我的Laravel项目中工作正常:

$ php artisan tinker
[1] > $field = 'title';
// 'title'
[2] > $p = Promotion::all();
// object(Illuminate\Database\Eloquent\Collection)(
// 
// )
[3] > $p[0]->$field;
// 'Test Promotion'
或使用查询生成器:

$ php artisan tinker
[1] > $field = 'title';
// 'title'
[2] > $q = DB::table('promotions');
// object(Illuminate\Database\Query\Builder)(
//   ...
// )
[3] > $q->addSelect('title');
// object(Illuminate\Database\Query\Builder)(
//   ...
// )
[4] > $p = $q->get();
// array(
//   0 => object(stdClass)(
//     'title' => 'Test Promotion'
//   )
// )
[5] > $p[0]->$field;
// 'Test Promotion'

啊,问题是我没有真正使用

$lookupField
我在用

$anObject->$lookupfield[$n]
所以实际的线路是

$goodData[0]->$anObject->lookupField[$n] 
如果我加上

$lField = $anObject->lookupField[$n]
echo $goodData[0]->$lField

那就行了。

您会收到什么错误?您可以先执行json编码,然后再进行json解码,以获得普通数组,而不是对象数组。然后你可以展平数组或循环查找属性。啊,问题是我实际上没有使用$lookupField,而是使用$anObject->$lookupField[$n]。因此,实际的行是$goodData[0]->$anObject->lookupField[$n],如果我添加了$lField=$anObject->lookupField[$n],那么我可以使用雄辩的ORM执行$goodData[0]->$lFieldThats。我正在使用查询生成器。@FacebookAnswers ORM在后台使用查询生成器。请看我的编辑。我添加了一个答案,因为这个问题比我最初发布的问题稍微复杂一些。然而,我已经记住了你的答案,因为它很有用。谢谢你的帮助。