2013-04-12 88 views
0

我有这样为什么Cakephp验证不起作用?

<input id="BreakdownProgName" type="text" required="required" placeholder="customer name" size="50" name="data[Breakdown][prog_name]"> 

一个输入框,我的模型验证是不是这个代码的工作,但是当我把像如下─

<?php echo $this->Form->input('Breakdown.prog_name',array('label'=>false,'div'=>false,'size'=>50,'placeholder'=>"customer name",'type'=>'text')); ?> 

那一次验证工作完全取代上面的代码。但我想使用第一个代码,并且希望验证能够与第一个代码完美匹配。我该怎么做?

我的控制器代码是

public function qty_breakdown1() 
    { 

      $this->layout='common'; 

     if(empty($this->data) == false) 
     { 

      if($this->Breakdown->save($this->data)) 
      { 
       //echo "This"; 
       $this->Session->setFlash('B Added Successfully.', 'default', array('class' => 'oMsg1 oMsgError1')); 
       $this->redirect('qty_breakdown'); 
      } 

     } 
     else 
     { 
      $this->set('errors', $this->Breakdown->invalidFields());  
     } 
    } 

回答

1

您的验证应该工作,无论视图代码的前提是字段名在POST数据是正确的。这是因为验证在服务器端工作。

但是,如果您想要显示验证错误,您应该使用Cake的FormHelper呈现表单元素或手动检查视图文件中的验证错误并从PHP代码中显示它们。

编辑:请检查API:isFieldError - 检查字段是否有错误,并且 error - 呈现给定字段的格式错误消息。

+0

你能告诉我你所告诉的代码....... – amit