CakePHP でのデータ検証に問題があります。データ検証が失敗するたびに、コントローラーに設定された変数が失われ、フォームが台無しになります。
add() のコントローラ コードは次のとおりです。
function add() {
$joins = array(
array(
'table' => 'groups_users',
'alias' => 'GroupUser',
'type' => 'inner',
'conditions' => array(
'User.id = GroupUser.user_id'
)
),
array(
'table' => 'groups',
'alias' => 'Group',
'type' => 'inner',
'conditions' => array(
'GroupUser.group_id = Group.id'
)
)
);
if (!empty($this->data)) {
if ($this->Course->save($this->data)) {
$this->Session->setFlash('Course created.');
$this->redirect(array('action'=>'index'));
}
} else {
$this->set('users', $this->Course->User->find('list', array(
'fields' => array('User.surname_firstname'),
'order' => array(
'User.surname_firstname'
),
'joins' => $joins,
'conditions' => array(
'Group.name' => 'teachers'
)
)));
}
}
検証が失敗すると、最後に設定された「users」変数が失われます。誰もこの問題を以前に経験したことがありますか? 簡単な修正はありますか?私のプロジェクトは 12 時間後に締め切られます。
ありがとう