想要将数据字段从表单保存到两个模型的两列中

时间:2010-06-15 02:02:37

标签: php mysql cakephp frameworks

我有一个与详细模型具有hasOne关系的Profile模型。我有一个注册表单,可以将数据保存到两个模型表中,但我希望将配置文件模型中的username字段复制到
详细信息模型中的username字段,以便每个字段具有相同的username

function new_account()
{
    if(!empty($this->data))
    {
        $this->Profile->modified = date("Y-m-d H:i:s");                 
        if($this->Profile->save($this->data))
        {
            $this->data['Detail']['profile_id'] = $this->Profile->id;
            $this->data['Detail']['username'] = $this->Profile->username;

        $this->Profile->Detail->save($this->data);
        $this->Session->setFlash('Your registration was successful.');

                    $this->redirect(array('action'=>'index'));
        }
    }

}

我的配置文件控制器中的此代码给出了错误:

Undefined property: Profile::$username

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您应该只需将$this->Profile->username替换为$this->data['Profile']['username']即可。

您还可以将$this->Profile->save($this->data)的结果存储在本地变量中,然后您可以从中提取用户名,尤其是在用户名可能会被更改的情况下,例如,在beforeSave()回调中。

您收到的错误消息是正常的。 CakePHP不会自动创建与列名对应的属性。