我在 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'
)
)));
}
}
当验证失败时,最后设置的“用户”变量将丢失。以前有人遇到过这个问题吗?有简单的解决方法吗?我的项目将在 12 小时内到期,这看起来很糟糕。
谢谢