Хотите сохранить поле данных из формы в два столбца двух моделей - PullRequest
0 голосов
/ 15 июня 2010

У меня есть модель Profile с отношением hasOne к модели Detail.У меня есть форма регистрации, которая сохраняет данные в таблицы обеих моделей, но я хочу, чтобы поле username из модели профиля было скопировано в поле
username в модели сведений так, чтобы у каждого был один и тот же * 1004.*.

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 Ответ

1 голос
/ 15 июня 2010

Вы можете просто заменить $this->Profile->username на $this->data['Profile']['username'].

Вы также можете сохранить результат $this->Profile->save($this->data) в локальной переменной, из которой затем можно извлечь имя пользователя, особенно если имя пользователя может быть изменено, например, в обратном вызове beforeSave ().

Полученное вами сообщение об ошибке является нормальным.CakePHP не создает автоматически свойства, которые соответствуют именам столбцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...