Leo*_*lis 7 php propel propel2
我正在使用Propel 2.我通过关系保湿对象,如下:
$return = OrderQuery::create()
->joinWith('Customer')
->joinWith('Status')
->find()
->toArray(TableMap::TYPE_PHPNAME, true, [], true);
Run Code Online (Sandbox Code Playgroud)
生成的数组看起来像这样:
{
"Id": 1,
"CustomerId": 1,
"StatusId": 1,
"Initiated": "2016-01-01T01:01:01+00:00",
"Customer": {
"Id": 1,
"Forname": "Test",
"Surname": "Smith",
"Orders": [
"*RECURSION*"
]
}
"Status": {
"Id": 1,
"Title": "title 1",
"Priority": 1,
"Orders": [
"*RECURSION*"
]
},
}
Run Code Online (Sandbox Code Playgroud)
我想删除值为的字段*RECURSION*.我尝试使用$alreadyDumpedObjects(第3个)参数,toArray()但似乎没有帮助.我也可以通过unset()调用来做某种形式的数组行走,但是我希望有更好的方法,也许是格式化程序或其他东西?
对于奖励积分,我非常想删除定义外键关系的列.例如,CustomerId会去,但Customer会留下来.
看起来,答案似乎非常简单。
ArrayFormatter如果我使用这样的标准:
$return = OrderQuery::create()
->setFormatter('Propel\Runtime\Formatter\ArrayFormatter');
->joinWith('Customer')
->joinWith('Status')
->find()
->toArray();
Run Code Online (Sandbox Code Playgroud)
返回的是一个ArrayCollection,当toArray()被调用时,除了缺少递归字段之外,与我的原始输出完全相同。
请注意,当获取一个结果时,例如 with ->findPk(1),它将返回一个关联数组,因此您不应->toArray()显式使用。
| 归档时间: |
|
| 查看次数: |
468 次 |
| 最近记录: |