【问题标题】:Want to save data field from form into two columns of two models想要将表单中的数据字段保存到两个模型的两列中
【发布时间】:2010-06-15 02:02:36
【问题描述】:

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

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

有什么想法吗?

【问题讨论】:

    标签: php mysql cakephp frameworks


    【解决方案1】:

    您应该能够简单地将$this->Profile->username 替换为$this->data['Profile']['username']

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

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

    【讨论】:

    • 另外,$this->Profile->modified = date("Y-m-d H:i:s"); 不会像您预期的那样工作。您需要将date("Y-m-d H:i:s") 的返回值分配给$this->data['Profile']['modified']
    猜你喜欢
    • 1970-01-01
    • 2014-08-31
    • 2013-10-05
    • 2021-05-07
    • 1970-01-01
    • 2013-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多