PHP - 获取重载的间接修改 属性 在修改对象时无效
PHP - Getting Indirect modification of overload property has no effect when modifying object
我在这里疯了!
尝试执行以下操作时出现此错误:
$adGroups = $adSet->getAdGroups($fields)->getArrayCopy();
BioCommandController::log("Syncing '{$adSet->{AdSetFields::NAME}}' groups: " . count($adGroups));
foreach($adGroups as $adGroup) {
echo "<pre>";
if($adGroup->conversion_specs[0]){
$adGroup->conversion_specs[0]['action_type'] = $adGroup->conversion_specs[0]['action.type'];
unset($adGroup->conversion_specs[0]['action.type']);
我有对象$adGroups,这个对象来自facebook。
我需要将 $key $adGroup->conversion_specs[0]['action.type'] 修改为
$adGroup->conversion_specs[0]['action_type']
原因是因为我需要将此对象保存在 mongoDB 数据库中,而它不接受这种密钥格式!
我试图做显而易见的事情,为对象创建正确的键并将内容插入其中,然后取消设置我不想要的键,但它会抛出该错误。
我真的迷路了,有什么解决办法吗????
我已阅读有关此错误的多个问题,但其中 none 对我有帮助!
扩展 ArrayObject 解决方案对我不起作用,因为我的 类 已经扩展了其他解决方案(它来自框架,yii)。所以我不想做一个巨大的杰里里克来扩展它。
而且我不明白为什么这不起作用,我一直这样做并且它曾经工作得很好,它太令人讨厌了。
谢谢
我仍然不确定为什么这不起作用,但我改变了我的方法并且至少能够做我需要的事情:
//We recreate the peace of the object that needs to be modified
$newKey = $adGroup->conversion_specs[0];
$data = $adGroup->conversion_specs[0]['action.type'];
unset ($newKey['action.type']);
$newKey['action_type'] = $data;
$adGroup->conversion_specs = $newKey;
我在这里疯了! 尝试执行以下操作时出现此错误:
$adGroups = $adSet->getAdGroups($fields)->getArrayCopy();
BioCommandController::log("Syncing '{$adSet->{AdSetFields::NAME}}' groups: " . count($adGroups));
foreach($adGroups as $adGroup) {
echo "<pre>";
if($adGroup->conversion_specs[0]){
$adGroup->conversion_specs[0]['action_type'] = $adGroup->conversion_specs[0]['action.type'];
unset($adGroup->conversion_specs[0]['action.type']);
我有对象$adGroups,这个对象来自facebook。 我需要将 $key $adGroup->conversion_specs[0]['action.type'] 修改为 $adGroup->conversion_specs[0]['action_type'] 原因是因为我需要将此对象保存在 mongoDB 数据库中,而它不接受这种密钥格式!
我试图做显而易见的事情,为对象创建正确的键并将内容插入其中,然后取消设置我不想要的键,但它会抛出该错误。
我真的迷路了,有什么解决办法吗????
我已阅读有关此错误的多个问题,但其中 none 对我有帮助! 扩展 ArrayObject 解决方案对我不起作用,因为我的 类 已经扩展了其他解决方案(它来自框架,yii)。所以我不想做一个巨大的杰里里克来扩展它。
而且我不明白为什么这不起作用,我一直这样做并且它曾经工作得很好,它太令人讨厌了。
谢谢
我仍然不确定为什么这不起作用,但我改变了我的方法并且至少能够做我需要的事情:
//We recreate the peace of the object that needs to be modified
$newKey = $adGroup->conversion_specs[0];
$data = $adGroup->conversion_specs[0]['action.type'];
unset ($newKey['action.type']);
$newKey['action_type'] = $data;
$adGroup->conversion_specs = $newKey;