验证规则未应用于cakePHP中的create

时间:2014-04-14 14:31:56

标签: cakephp cakephp-2.3

我遇到的问题是验证规则在编辑时被触发,但在创建时都没有触发它们。以下是一些验证规则,即使问题很可能不在这里:

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'));?>

并且在任何控制器功能中都没有禁用验证,因为它们在整个应用程序中都是相同的,并且与其他所有模型完美配合。我想它必须是简单的,但我无法让它发挥作用。

非常感谢任何帮助。

2 个答案:

答案 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;
}
相关问题