1

Cakephp コードを 2.6.7 から 3.1.5 にアップグレードしています。古いバージョンのコードは正常に動作します:

public $validate = array(
        'email' => array(
            'rule' => 'isUnique',
            'required' => true,
            'message' => 'Email already exist'
        ),
        'password' => array(
            'rule' => array('minLength', '6'),
            'message' => 'password must be minimum 6 characters long'
        )
    );

今、それをcakephpの最新バージョンに変換したいと思います。例: 3.1.5 notempty ルールの解決策を見つけました。しかし、コードの変換とは何ですか。または、古いバージョンのプロジェクトのバージョン アップグレードの自動プロセスはありますか?

4

1 に答える 1

2

CakePHP 2.x から CakePHP 3.x にアップグレードするためのツールがあります。ただし、検証をサポートしていないのではないかと心配しています。

3.x のルールを書き直すことは、それほど複雑ではありません。

上記は次のようになります。

public function validationDefault(Validator $validator) {

    $validator
        ->requirePresence('email')
        ->add('email', 'unique', [
            'rule' => 'validateUnique',
            'provider' => 'table',
            'message' => 'Email already exists'
         ])
        ->add('password', 'minLength', [
             'rule' => ['minLength', 6],
             'message' => 'Password must be minimum 6 characters long',
    ]);

    return $validator;
}

上記はあなたのTable定義に当てはまります。

Validation に関する CakePHP 3.xのドキュメントを必ず読んでください。

于 2015-12-04T22:05:58.463 に答える