到目前为止,我一直试图让这个工作大约一个小时,我目前正在使用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在表格上也是正确的,它只是在这两种情况下从英语翻译成葡萄牙语。
答案 0 :(得分:0)
尝试打印(使用pr($ aro))打印$ aro数组的内容。如果它包含任何无效的字段名称(不在数据库表中的属性名称),则保存操作将失败。