我有一个与hasMany关系中的学生表链接的帖子表。
学生表与hasAndBelongsToMany关系中的主题表链接:
posts hasMany students
students HABTM subjects
PostController提交了一个表单。表格有几个字段(多个复选框)供学生分别选择他们的科目:
<?php echo $this->Form->input('Student.0.Subject'); ?>
<?php echo $this->Form->input('Student.1.Subject'); ?>
<?php echo $this->Form->input('Student.2.Subject'); ?>
我需要确保每个学生至少选择一个科目,但蛋糕验证不会像它应该的那样工作。我尝试根据我的需要调整this approach,但它似乎不起作用。不知道我做错了什么?
function beforeValidate($options = array()) {
$test = Router::getParams();
if ($test['pass'][0] == '3') {
//check the field only if it's in step 3
if (empty($this->data['Student'][0]['Subject'])) {
$this->invalidate('non_existent_field'); // fake validation error
$this->invalidate('Student.0.Subject', 'Please select at least one subject');
}
return true;
}
}
fyi $this->request->data['Student'][0]['Subject']
确实返回空''字符串..
编辑:
$ this-&gt; invalidate似乎不起作用。我调试它并返回null
。