CakePHP Aro-> save()在用户模型中的afterSave()内使用时无法正常工作

时间:2011-08-30 19:56:08

标签: php cakephp models behavior

到目前为止,我一直试图让这个工作大约一个小时,我目前正在使用cakephp 2,除了这段代码外,一切都很完美

以下是我在用户模型中的内容

var $actsAs = array('Acl' => array('type' => 'requester'));

public function bindNode($user)
{
    # ativando o simplified node mode
    # trabalharemos apenas com permissões referentes ao grupo e não a cada usuário
    #
    return array('model' => 'Grupo', 'foreign_key' => $user['User']['grupo_id']);
}

public function parentNode()    # utilizado para determinar um relacionmamento Pai -> Filho
{
    if (!$this->id && empty($this->data))
        return null;

    if (isset($this->data['User']['grupo_id']))
        $groupId = $this->data['User']['grupo_id'];
    else
        $groupId = $this->field('grupo_id');

    if (!$groupId)
        return null;
    else
        return array('Grupo' => array('id' => $groupId));
}

public function afterSave( $created )   # depois que as infos deste usuario sao salvas
{
    # Funcao para permitir atualizar os grupos dos usuarios
    if (!$created)
    {
        $parent = $this->parentNode();
        $parent = $this->node($parent);
        $node = $this->node();
        $aro = $node[0];
        $aro['Aro']['parent_id'] = $parent[0]['Aro']['id'];
        $this->Aro->save($aro);
    }
}

Basicaly他做的一切都很好,用正确的group_id更新表User并且如果我使用debug($ aro)我可以看到它正在尝试使用正确的信息进行更新。

然而$ this-> Aro-> save($ aro)似乎没有用,也没有Cake显示任何错误消息,尝试了几种调试方式,但没有显示错误,它只是不更新aro表。

任何人都知道为什么要这样做?

PS:Grupo而不是Group而grupo_id而不是group_id在表格上也是正确的,它只是在这两种情况下从英语翻译成葡萄牙语。

1 个答案:

答案 0 :(得分:0)

尝试打印(使用pr($ aro))打印$ aro数组的内容。如果它包含任何无效的字段名称(不在数据库表中的属性名称),则保存操作将失败。