2013-03-17 5 views
2

У меня есть таблица profiles и таблицу users и profiles имеет belongsTo отношения с users. На моем profiles/edit виде у меня есть выпадающий список существующих users.CakePHP ForeignKey не сохраняются в belongsTo отношении

Однако users.id не сохраняется в profiles.user_id, как и следовало ожидать.

ProfilesController.php -> редактировать:

$this->set('users', $this->Profile->User->find('list')); 

И View -> Профили -> edit.ctp

echo $this->Form->input('User'); 

Запуск debug($this->request); в контроллере показывает, что собственные значения посылаются обратно к контроллеру. Сохранить действие выглядит следующим образом:

if ($this->request->is('post') || $this->request->is('put')) { 
    if ($this->Profile->save($this->request->data)) { 
     $this->Session->setFlash(__('The profile has been saved')); 
    } else { 
     $this->Session->setFlash(__('The profile could not be saved. Please, try again.')); 
    } 
} 

В возвращаемых данных:

data => array(
    'Profile' => array(
     'User' => '3', 
        ... 
+0

Не видите проблему в этой части вашего кода. Вы проверили инструкции SQL, если debug включен? – thaJeztah

+0

@thaJeztah Отчет о запросе в отладочном не показывает, что user_id сохраняется. –

+0

Но он присутствует в данных запроса как Profile => user_id? Weird. – thaJeztah

ответ

5

Этот синтаксис является неправильным:

echo $this->Form->input('User'); 

Вы не есть поле с именем "Пользователем" в вашей модели Profile. Это должно быть:

echo $this->Form->input('user_id'); 
Смежные вопросы