2013-04-12 94 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