2017-03-24 22 views
2

数字のみのcakephp検証はありますか?その入力フィールドは、その浮動小数点数か整数かどうかNumbersだけを受け入れる必要があります。 私はこのフィールド検証をモデルにしていますが、どのルールを使用するのかはわかりません。CakePHP番号のバリデーション

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

    ) 

すべてのヘルプははるかに高く評価された。..

+0

利用可能なすべてのCakePHP検証ルールは、[docs](https://book.cakephp.org/2.0/ja/models/data-validation.html)にあります。 – drmonkeyninja

答えて

1

あなたは、有効な数値をテストするためにnumericを使用する: -

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

あなたが代わりにフロートまたは自然数のためnaturalNumberをチェックするdecimalを使用することができます。詳細はoffical docsにあります。

また、入力フィールドが数値だけを可能にしていることを確認してくださいすることができます -

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

これは、一部のモバイルデバイス上のキーボードを簡単に入力用のテンキーに切り替わります追加の利点を持っています。クライアント側の検証を丸ごと行う方法があるとしても、サーバー側の検証(Cakeの部分)を確実に行うことは重要です。

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} =長さ)。

1

あなたは数字(浮動小数点と整数)を検証するために以下のルールを使用することができます。

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

が、これはあなたのために働くなら、私に教えてください。

関連する問題