Validation 如何显示CakePHP的内置验证错误消息?

Validation 如何显示CakePHP的内置验证错误消息?,validation,cakephp,Validation,Cakephp,我正在尝试将cakePHP的内置验证函数用于我的注册/登录页面 <?php class User extends AppModel { var $name = 'User'; var $validate = array( 'name' => VALID_NOT_EMPTY, 'password' => VALID_NOT_EMPTY,

我正在尝试将cakePHP的内置验证函数用于我的注册/登录页面

<?php
class User extends AppModel
{
    var $name = 'User';
    var $validate = array(
                          'name' => VALID_NOT_EMPTY,
                          'password' => VALID_NOT_EMPTY,
                          'email_id' => VALID_EMAIL
                         );
}
Index.ctp

<p>Please fill out the form below to register an account.</p>
<?php 
      echo $form->create('User', array('action' => 'register'));
      echo $form->input('name');
      echo $form->input('email_id');
      echo $form->input('password');
      echo $form->end('Register');
?>

<h3>Login</h3>
<?php
      echo $form->create('User',array('action'=>'login'));
      echo $form->input('email_id');
      echo $form->input('password');
      echo $form->end('Login');
?>

可能会发生冲突,因为您正在创建两个使用相同模型的表单。如果您对登录表单进行注释,那么是否会显示错误消息?

只有在“视图/用户”文件夹中有单独的register.ctp文件时,才会显示错误消息。如果我将控件重定向到主页面,当注册失败时,我会收到会话setFlash消息,但不会收到错误消息。只有当注册操作有单独的视图文件时,才会显示错误消息。与setFlash不同,验证消息将加载回视图中,并且不会存储在会话中。如果重定向,则会丢失错误消息。对于register方法,您可能需要在控制器中使用$this->render'index',因此不需要重定向。
<p>Please fill out the form below to register an account.</p>
<?php 
      echo $form->create('User', array('action' => 'register'));
      echo $form->input('name');
      echo $form->input('email_id');
      echo $form->input('password');
      echo $form->end('Register');
?>

<h3>Login</h3>
<?php
      echo $form->create('User',array('action'=>'login'));
      echo $form->input('email_id');
      echo $form->input('password');
      echo $form->end('Login');
?>
function register()
    {
      if (!empty($this->data))
      {
        if ($this->User->save($this->data))
        {
          $this->Session->setFlash('Your registration information was accepted.');
          $this->render('home');
        }
        else
        {
            $this->Session->setFlash('Your registration failed.');
            $this->render('index');
        }

      }
    }