Как отключить ненужное сообщение проверки - PullRequest
0 голосов
/ 17 февраля 2019

Я сейчас создаю веб-приложение, подобное сайту электронной коммерции, используя следующие технические навыки, и мне нужно создать новую страницу для изменения пользовательской информации, такой как username, email и password.

Я хочу, чтобы веб-приложение возвращало сообщение проверки по электронной почте, даже если в username и password есть ошибки, но оно не работает.

Например, имя пользователя -> пусто, электронная почта-> blank, password -> blank => В этом случае должно появиться сообщение для проверки электронной почты, а остальные не должны отображаться.(Конечно, проверки правильности адреса электронной почты и пароля используются на другой странице, поэтому я не могу удалить конфигурации)

Технические навыки

  • CakePHPверсия 2.10
  • PHP 7

Я уже пробовал следующие вещи.- Пытался разработать только для проверки для электронной почты

* UserController
$this->User->validates([
                        'email'
                    ])) {
  • Пытался сбросить сообщение об ошибке проверки
unset($this->validationErrors['User']['username']);
unset($this->validationErrors['User']['password']);
  • UserController.php
:

public function modify() {
    $this->loadModel('User');
    if($this->request->is('post') || $this->request->is('put')){
        $this->User->set($this->request->data);
        if ($this->User->validates(['email'])) {
            $this->User->save(array(
                'email' => $this->request->data['User']['email']
        ));
            $this->Flash->set(__('Succeeded changing email address'));
            $this->redirect($this->refer());
        } else {
            $this->Flash->set(__('Failed changing email address'));
        }

    }
}

:
  • modify.ctp
<?php

:

<p>username: </p>
<?php echo $this->Form->input('username', [
                  'type' => 'text',
                  'required' => false,
                ]);
?>

<p>email: </p>
<?php echo $this->Form->input('email', [
                  'type' => 'email',
                  'required' => false,
                ]);
?>

<p>password: </p>
<?php echo $this->Form->input('password', [
                  'type' => 'password',
                  'required' => false,
                ]);
?>
  • User.php
<?php
class User extends AppModel {

:

public $validate = array(
            'email' => array(
                'rule' => array('email'),
                'message' => 'Invalid format',
            )
}
...