【问题标题】:cakephp validate number as well floating number, should not allow alphanumericcakephp 验证数字以及浮点数,不应允许字母数字
【发布时间】:2011-11-27 05:02:33
【问题描述】:

如何在 cakephp 中验证金额,

验证规则:不接受空格,不应该是字母数字,不应该接受除点(.)以外的特殊字符,

示例:

应该接受以下值

12 12.0 12.00 133

不应接受以下值

123_33/#$#%#$%# a1a1455 asd 风靡一时

实际上,这个字段用于支付网关,所以在向支付网关发送金额之前,我们应该确保我们发送的是十进制或整数。

信息:在 cakephp 框架中工作

【问题讨论】:

  • 您是否查看过在线 API 文档或数字或货币类的源代码?他们有可能内置了它(即变形器类)。
  • 数字就是你想要的

标签: php cakephp-2.0 cakephp-model


【解决方案1】:

您必须执行以下操作

http://book.cakephp.org/2.0/en/models/data-validation.html#Validation::money

//2.0
    var $validate = array(
        'salary' => array(
            'rule' => array('money', 'left'),
            'message' => 'Please supply a valid monetary amount.'
        )
    );

如果你使用的是 1.3 试试

http://book.cakephp.org/1.3/en/The-Manual/Common-Tasks-With-CakePHP/Data-Validation.html#money

如果也可以试试十进制http://book.cakephp.org/1.3/en/The-Manual/Common-Tasks-With-CakePHP/Data-Validation.html#decimal

//2.0
    public $validate = array(
        'price' => array(
            'rule' => array('decimal', 2)
        )
    );

还要考虑数字http://book.cakephp.org/2.0/en/models/data-validation.html#Validation::numeric

【讨论】:

    【解决方案2】:

    试试这个:

    变量 $ 验证 = 数组( '数量' => 数组( '规则' => 数组('十进制',2) ) );

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2016-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多