是否只对数字进行了cakephp验证。该输入字段应该只接受Numbers是否为浮点数或整数。 我在模型中有这个字段验证,但我不知道使用什么规则。
'payment_commission' => array(
'required' => array(
'rule' => array('notEmpty'),
'message' => 'Required.'
)
)
非常感谢任何帮助..
答案 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,
)
),
请告诉我这是否适合您。