2012-02-23 62 views
0

我有一個窗體,它似乎在我面前蛋糕是要求或不要求如此隨機的字段,我甚至不能控制它。請幫助我瞭解如何獲取必填字段的工作方式。CakePHP必填字段 - 沒有任何意義

public $validate = array(
    'fname' => array(
     'rule1' => array(
      'rule' => 'notEmpty', 
      'message' => 'Please enter your first name' 
     ), 
     'rule2' => array(
      'rule' => array('maxLength', '50'), 
      'message' => 'First name cannot exceed 50 characters' 
     ) 
    ), 
    'sname' => array(
     'rule1' => array(
      'rule' => 'notEmpty', 
      'message' => 'Please enter your last name' 
     ), 
     'rule2' => array(
      'rule' => array('maxLength', '50'), 
      'message' => 'Last name cannot exceed 50 characters' 
     ), 
    ), 
    'email' => array(
     'rule1' => array(
      'rule' => 'notEmpty', 
      'message' => 'Please enter your email address' 
     ), 
     'rule2' => array(
      'rule' => array('maxLength', 100), 
      'message' => array('Email cannot exceed 100 characters') 
     ), 
     'rule3' => array(
      'rule' => 'email', 
      'message' => 'Please enter a valid email address' 
     ), 
     'rule4' => array(
      'rule' => 'isUnique', 
      'message' => 'An account already exists with that email address', 
      'on' => 'update' 
     ) 
    ) 
); 

所有這些3個字段不能爲空,但蛋糕是決定作出fnamesname顯示在表格上的要求,但不是必需的電子郵件。我正在談論關於輸入的課程,使其看起來需要。這是非常隨意的。在數據庫中,這些字段都是相同的VARCHAR,NOT NULL。

我試着將allowEmpty => false添加到電子郵件中,但它什麼也沒做。這適用於只有一個規則但不適用於具有多個規則的字段的其他字段。不過,我想知道爲什麼它需要fname和sname,而不是電子郵件。

截圖:http://i.imgur.com/3JMTR.gif

+0

我正在運行cakephp 2.0.6,我看不到相同的東西。你會提供你使用的視圖文件嗎?也許有些東西的形式正在改變風格。 – 2012-02-24 03:20:37

回答

2

嗨表中的電子郵件字段使其作爲不能

NULL

(我認爲電子郵件列可以接受空值一樣,美創建的表),那麼它必需*符號將出現在視圖中。當然,它會工作,我面臨着同樣的問題,像這樣的

1

嘗試加入「需要」 =你想需要的字段的規定也是如此。

0

您可以通過關閉所有的電子郵件驗證規則:

unset($this->ModelName->validate['email']); 

但看着screenshoot後,我可以看到,有沒有紅星上面的這也許電子郵件field.The因爲你沒有正確命名的電子郵件輸入

echo $this->Form->input('email'); 

一般來說,如果你有這條線(如果它是由烘烤產生比一定是正確的),它必須有驗證規則用於電子郵件字段