これはおそらく簡単な質問ですが、わかりません。CakePHP3:小数点の入力を有効にする
price
の値に小数点以下2桁を設定したいとします。 CakePHPはこれを検証すべきですが、そうではありません。 CakePHPは、入力が数値か小数点を渡すことを許可しないかどうかだけをチェックします。
2.22
のような値をチェックして渡すだけでなく、2
も渡したいと思います。今は後者のみを許可します。
パートvalidationDefault
方法:
$validator
->decimal('price')
->allowEmpty('price');
私は、CakePHPのAPIをチェックしdecimal()
方法の説明が見つかりました:
decimal(float $check , integer|null $places null , string|null $regex null)
をチェック値が有効な10進数です。符号と指数はともに です。
しかし、それはこの文脈では、パラメータとしてstring
をとらない(とCakePHPが焼成時に自動的に私のprice
列にdecimal()
を割り当てる)ので、私はdecimal('price', 2)
が動作しない理由は、これがあると思います。
アイデア?
REQUESTED EDIT:
全体validationDefault
方法:
public function validationDefault(Validator $validator)
{
//$validator for other columns
$validator
->allowEmpty('price')
->add('price', 'money', array('rule' =>
array('money', 'left'),
'message' => 'Please supply a valid monetary amount.'));
return $validator;
}
私の入力フィールドがHTMLヘルパーを使用して作成されます。
を試すことができますご返信いただきありがとうございます。私はこのコード行をコピーして貼り付けます(以前の 'decimal( 'price')'を削除します)。しかしそれでも整数だけが必要です。 – PHPJunior
それは私のために働いています – pradeep
あなたの妥当性検査コードを表示してください、私はそれを省略して、 '左'を取ってみてください – pradeep