2012-05-27 157 views
0

在cakePHP中,如果將驗證語句放置在控制器中,您將如何實現日期驗證。我可以在第一次驗證聲明之後放置第二個if語句嗎?我不知道你會如何讓它驗證爲systemdate之前或等於到期日cakephp日期驗證

if($this->Invoice->validates(array('fieldList'=>array('Relationship.partyone','Relationship.active')))) 
{ 
    $this->Invoice->create(); 
if ($this->Invoice->saveAll($this->request->data,array('validate'=>false))) 
{ 
    $this->Session->setFlash('The invoice has been saved'); 

回答

1

也許你需要的日期日期比較自定義的驗證

在型號

var $validate = array(
     'date' => array(
     'rule' => array('datevalidation', 'systemDate'), 
     'message' => 'Current Date and System Date is mismatched' 
      ) 
     ); 

function datevalidation($field=array(), $compare_field=null) 
    { 
     if ($field['date'] > $compare_field) 
     return TRUE; 
     else return FALSE; 
    } 

在控制器

if($this->Invoice->validates(array('fieldList'=>array('Relationship.partyone','Relationship.active',Relationship.date)))) 
+0

應該是Relationship.datevalidation,但您的先生是冠軍! – user1393064

+0

嗯,爲什麼不只是'返回$ field ['date']> $ compare_field;' – tigrang