3

descriptionデータベースに、英数字とスペース、および改行文字を受け入れるフィールドがあります。モデルにその検証ルールを設定したいと思いServerます。

これが私が今持っているものです:

<?php

class Server extends AppModel {

    public $validate = array(
        // ...
        'description' => array(
            'characters' => array(
                'rule'     => 'alphaNumeric',
                'message'  => 'Alphanumeric characters only'
            )
        ),
        // ...
    );

}

これを変更して、スペースと新しい行、および英数字を許可するにはどうすればよいですか?Cakeにはこのための検証ルールが組み込まれていると思いましたが、表示されません。自分で作成して正規表現を使用する必要がありますか?

ありがとう。

4

3 に答える 3

2

CakePHP の alphaNumeric は、スペースのない英数字を意味します。したがって、独自の正規表現パターンを使用する必要があります。

例:

'description' => array(
    'characters' => array(
        'rule' => array('custom', '/^[a-z0-9 ]*$/i'),
        'message'  => 'Alphanumeric characters with spaces only'
    )
),
于 2014-09-20T06:05:29.733 に答える
0

いいえ、CakePHPはすべてのケースをカバーできるわけではなく、あなたのケースもそれほど一般的ではありません。

http://api20.cakephp.org/view_source/validation#l-73その文字と整数だけを参照してください。

使用する

'rule'     => array('custom', 'your-regex-here'),

ニーズに一致する正規表現を簡単に見つけたり、検証クラスから正規表現をコピーして変更したりするのは簡単です。

于 2012-07-04T01:40:14.157 に答える