CakePHP必填字段 - 没有任何意义

时间:2012-02-23 14:10:57

标签: cakephp-2.0

我有一个表格,在我看来,蛋糕需要或不需要如此随机的字段,我甚至无法控制它。请帮助我了解如何使必填字段正常工作。

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'
        )
    )
);

所有这三个字段都不能为空,但Cake决定在表单上显示fnamesname,但不需要电子邮件。我正在谈论关于输入的课程,看起来需要它。这是随机的。在数据库中,字段都是相同的VARCHAR,NOT NULL。

我尝试将allowEmpty => false添加到电子邮件中,但它没有做任何事情。这适用于仅具有一个规则但不适用于具有多个规则的字段的其他字段。不过,我想知道为什么要制作fname和sname但不是电子邮件。

屏幕截图:http://i.imgur.com/3JMTR.gif

3 个答案:

答案 0 :(得分:2)

你好,在电子邮件领域的表格中,无法

  

NULL

(我认为电子邮件列可以接受像你创建表那样的空值)然后它会显示必需的*符号。当然它会起作用,我面对同样的问题

答案 1 :(得分:1)

尝试在您想要的字段规则上添加'required'= true。

答案 2 :(得分:0)

您可以按以下方式关闭所有电子邮件验证规则:

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

但在观看了整个屏幕截图后,我可以看到电子邮件字段上方没有红星。原因可能是您没有正确命名电子邮件输入

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

通常如果你有这一行(如果它是由bake生成而不是必须是正确的),它必须具有电子邮件字段的验证规则