我在这里疯了!我在尝试执行以下操作时遇到此错误:
$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->conversation_specic[0][操作类型']原因是我需要将这个对象保存在mongoDB数据库中,而它不接受这个密钥格式!
我试过做一些显而易见的事情,为对象创建正确的键,并在其中插入内容,然后取消设置我不想要的键,但它会引发错误。
我真的很迷茫,有什么解决办法吗????
我已经读了好几期关于这个错误的文章,但没有一期对我有帮助!extend 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;