Как преобразовать правила проверки из CakePHP 2.x в 3.x?

Я обновляю свой код 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 Я нашел решение для непустого правила. Но что такое преобразование кода. Или есть ли какой-либо автоматический процесс обновления версии для проекта старой версии?


person Abdus Sattar Bhuiyan    schedule 04.12.2015    source источник


Ответы (1)


Существует инструмент для обновления с 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.

Обязательно прочтите документацию CakePHP 3.x по проверке.

person Inigo Flores    schedule 04.12.2015