2011-02-23 18 views
1

我可以模擬驗證數據庫中不存在的字段嗎?它不工作了下面的代碼驗證數據庫中不存在的字段

型號

'agree' => array(
    'comparison' => array(
      'rule' => array('comparison', 'equal to', 1), 
      'message' => 'Accept the Proposal', 
      'allowEmpty' => false, 
      //'required' => true, 
      //'last' => false, // Stop validation after this rule 
      //'on' => 'create', // Limit validation to 'create' or 'update' operations 
    ), 
), 

。 查看

<div class="input checkbox"> 
<input type="hidden" name="data[Season][agree]" id="SeasonAgree_" value="0"> 
<input type="checkbox" name="data[Season][agree]" value="1" id="SeasonAgree"> 
<label for="SeasonAgree"></label> Seasons Proposal displayed is correct 
</div> 

回答

2

您可以驗證不在數據庫中的字段。 例如在註冊表格中,您可以驗證「我接受用戶條款」字段,並且不要將此值保存在數據庫中。

在您的代碼中,您正在驗證「接受」而不是「同意」。事實上,你有兩個同名的輸入("data[Season][agree]"),這可能是一個問題。

+1

這不是問題,因爲這覆蓋了複選框沒有被選中的情況。如果第一個隱藏字段不存在,那麼如果複選框被禁用,它不會出現在_POST中,並且可能導致問題。 – 2011-02-23 10:57:56

+0

感謝提示Nik。我使用複選框字段選中了一個我的cakephp表單,並且我注意到cakephp創建了該隱藏字段。我對此一無所知。 – Min 2011-02-24 09:49:09

1

驗證不在模型中的字段是可能的。您的錯誤是,在模型中,您在視圖中驗證「接受」時,該字段被稱爲「同意」。

相關問題