CakePHP编号验证

时间:2017-03-24 06:59:09

标签: php cakephp

是否只对数字进行了cakephp验证。该输入字段应该只接受Numbers是否为浮点数或整数。 我在模型中有这个字段验证,但我不知道使用什么规则。

 'payment_commission' => array(
        'required' => array(
            'rule' => array('notEmpty'),
            'message' => 'Required.'
        )

    )

非常感谢任何帮助..

3 个答案:

答案 0 :(得分:2)

您想使用numeric来测试有效数字: -

'payment_commission' => array(
    'required' => array(
        'rule' => 'notEmpty', // use notBlank as of CakePHP 2.7
        'message' => 'Required.'
    ),
    'numeric' => array(
        'rule' => 'numeric',
        'message' => 'Numbers only'
    )
)

您也可以使用decimal检查浮点数,或naturalNumber检查自然数。有关详细信息,请参阅offical docs

您还可以确保输入字段仅允许数值: -

<?= $this->Form->input('payment_commission', ['type' => 'number']) ?>

这具有额外的优势,在某些移动设备上,键盘将切换到数字键盘以便于输入。确保服务器端验证(Cake部分)到位非常重要,因为人们可以通过各种方式绕过客户端验证。

答案 1 :(得分:1)

您可以尝试使用cakePHP代码进行数字验证。

'payment_commission' => array(
    'numeric' => array(
        'required' => array(
            'rule' => array('notEmpty'),
            'message' => 'Required.'
        )
    ) 
)

您可以在文本框中使用以下html模式代码。

<input type="text" name="payment_commission" pattern="[0-9]{10}" title="Three letter country code">

您可以在此处通过更改[0-9]{10}来管理您的模式。 ([0-9] =来自用户的预期整数,{10} =长度)。

答案 2 :(得分:1)

您可以使用以下规则来验证数字(浮点数和整数):

'payment_commission' => array(
    'numeric' => array(
        'rule' => array('decimal', 2),
        'message' => 'Please enter only numbers',
        'allowEmpty' => false,
        'required' => true,
    )
),

请告诉我这是否适合您。