Я сейчас создаю веб-приложение, подобное сайту электронной коммерции, используя следующие технические навыки, и мне нужно создать новую страницу для изменения пользовательской информации, такой как username
, email
и password
.
Я хочу, чтобы веб-приложение возвращало сообщение проверки по электронной почте, даже если в username
и password
есть ошибки, но оно не работает.
Например, имя пользователя -> пусто, электронная почта-> blank, password -> blank => В этом случае должно появиться сообщение для проверки электронной почты, а остальные не должны отображаться.(Конечно, проверки правильности адреса электронной почты и пароля используются на другой странице, поэтому я не могу удалить конфигурации)
Технические навыки
Я уже пробовал следующие вещи.- Пытался разработать только для проверки для электронной почты
* UserController
$this->User->validates([
'email'
])) {
- Пытался сбросить сообщение об ошибке проверки
unset($this->validationErrors['User']['username']);
unset($this->validationErrors['User']['password']);
:
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'));
}
}
}
:
<?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,
]);
?>
<?php
class User extends AppModel {
:
public $validate = array(
'email' => array(
'rule' => array('email'),
'message' => 'Invalid format',
)
}