我遇到的问题是验证规则在编辑时被触发,但在创建时都没有触发它们。以下是一些验证规则,即使问题很可能不在这里:
var $validate = array(
'date' => array(
'notempty' => array(
'rule' => array('notEmpty'),
'message' => 'Choose a date'
)
),
'minutes' => array(
'rule'=>'minutes',
'message' => 'Minutes cannot exceed 60',
'allowEmpty' => true
)
以下是表格(编辑和添加):
<?php echo $this->Form->create('Event');?>
<?php echo $this->Form->input('date', array('class'=>'datepicker', 'type'=>'text', 'label'=>__('Date*')));?>
<?php echo $this->Form->end(__('Save edit'));?>
<?php echo $this->Form->create('Event');?>
<?php echo $this->Form->input('date', array('class'=>'datepicker', 'type'=>'text', 'value'=>$date, 'label'=>__('Date*'))); ?>
<?php echo $this->Form->end(__('Save'));?>
并且在任何控制器功能中都没有禁用验证,因为它们在整个应用程序中都是相同的,并且与其他所有模型完美配合。我想它必须是简单的,但我无法让它发挥作用。
非常感谢任何帮助。
答案 0 :(得分:1)
在EventsController.php文件中尝试此代码。
在你的add()函数中:
代码:
if ($this->request->is('post')) {
$this->Event->set($this->request->data);
if($this->Event->validates()) {
if ($this->Event->save($this->request->data)) {
// Data saved and validated
}
}
}
我希望这段代码可以帮到你..
谢谢!!
答案 1 :(得分:1)
您只需要在模型表的两个操作中单独使用验证规则。
public function validationadd(Validator $validator){
->notEmpty('first_name');
return $validator;
}
public function validationedit(Validator $validator){
->notEmpty('first_name');
return $validator;
}