Validation 未显示验证错误

Validation 未显示验证错误,validation,cakephp,Validation,Cakephp,我试图在用户注册到我的应用程序时验证他们。没有任何东西被设置为validationErrors,这很奇怪,有人能帮我吗 这是我的会员控制器 <?php class MembersController extends AppController { var $name = 'Members'; var $components = array('RequestHandler','Uploader.Uploader'); function beforeFilter() { p

我试图在用户注册到我的应用程序时验证他们。没有任何东西被设置为validationErrors,这很奇怪,有人能帮我吗

这是我的会员控制器

<?php
    class MembersController extends AppController {
var $name = 'Members';

var $components = array('RequestHandler','Uploader.Uploader');

function beforeFilter() {
    parent::beforeFilter();
    $this->layout = 'area';
    $this->Auth->allow('register');
    $this->Auth->loginRedirect = array('controller' => 'members', 'action' => 'dashboard');
    $this->Uploader->uploadDir = 'files/avatars/';
    $this->Uploader->maxFileSize = '2M';
}


function login() {}

function logout() {
     $this->redirect($this->Auth->logout());
}

function register() {
    if ($this->data) {
        if ($this->data['Member']['psword'] == $this->Auth->password($this->data['Member']['psword_confirm'])) {
            $this->Member->create();
            if ($this->Member->save($this->data)) {
                $this->Auth->login($this->data);
                $this->redirect(array('action' => 'dashboard'));
            } else {
                $this->Session->setFlash(__('Account could not be created', true));
                $this->redirect(array('action' => 'login'));
                pr($this->Member->invalidFields());
            }
        }
    }
}
} ?>

login.ctp

    <div id="login-form" class="round">
    <h2>Sign In</h2>
    <?php echo $form->create('Member', array('action' => 'login')); ?>
        <?php echo $form->input('email_address',array('class' => 'login-text',
                                                    'label' => array('class' => 'login-label')
                                                ));?>
        <?php echo $form->input('psword'    ,array('class' => 'login-text',
                                            'label' => array('class' => 'login-label','text' => 'Password')
                                        ))?>
    <?php echo $form->end('Sign In');?> 
</div>  
<div id="signup-form" class="round">
    <h2>Don't have an account yet?</h2>
    <?php echo $form->create('Member', array('action' => 'register')); ?>
        <?php echo $form->input('first_name',array('class' => 'login-text',
                                                    'label' => array('class' => 'login-label')
                                                ));?>
        <?php echo $form->input('last_name',array('class' => 'login-text',
                                                    'label' => array('class' => 'login-label')
                                                ));?>
        <?php echo $form->input('email_address',array('class' => 'login-text',
                                                    'label' => array('class' => 'login-label')
                                                ));?>
        <?php echo $form->input('psword'    ,array('class' => 'login-text',
                                            'label' => array('class' => 'login-label','text' => 'Password')
                                        ))?>
        <?php echo $form->input('psword_confirm'    ,array('class' => 'login-text',
                                                        'label' => array('class' => 'login-label','text' => 'Confirm'),
                                                        'div' => array('style' => ''),
                                                        'type' => 'password'  
                                        ))?>
    <?php echo $form->end('Sign In');?>
</div>

登录
你还没有账户吗?

我认为您的问题在于:

$this->redirect(array('action' => 'login'));
pr($this->Member->invalidFields());
验证错误设计为显示在表单上相应字段下方。但是,您没有继续并尝试显示表单,而是将用户重定向到其他页面

如果删除上面的两行,当验证失败时,它应该在表单上的字段下显示验证错误

    <div id="login-form" class="round">
    <h2>Sign In</h2>
    <?php echo $form->create('Member', array('action' => 'login')); ?>
        <?php echo $form->input('email_address',array('class' => 'login-text',
                                                    'label' => array('class' => 'login-label')
                                                ));?>
        <?php echo $form->input('psword'    ,array('class' => 'login-text',
                                            'label' => array('class' => 'login-label','text' => 'Password')
                                        ))?>
    <?php echo $form->end('Sign In');?> 
</div>  
<div id="signup-form" class="round">
    <h2>Don't have an account yet?</h2>
    <?php echo $form->create('Member', array('action' => 'register')); ?>
        <?php echo $form->input('first_name',array('class' => 'login-text',
                                                    'label' => array('class' => 'login-label')
                                                ));?>
        <?php echo $form->input('last_name',array('class' => 'login-text',
                                                    'label' => array('class' => 'login-label')
                                                ));?>
        <?php echo $form->input('email_address',array('class' => 'login-text',
                                                    'label' => array('class' => 'login-label')
                                                ));?>
        <?php echo $form->input('psword'    ,array('class' => 'login-text',
                                            'label' => array('class' => 'login-label','text' => 'Password')
                                        ))?>
        <?php echo $form->input('psword_confirm'    ,array('class' => 'login-text',
                                                        'label' => array('class' => 'login-label','text' => 'Confirm'),
                                                        'div' => array('style' => ''),
                                                        'type' => 'password'  
                                        ))?>
    <?php echo $form->end('Sign In');?>
</div>
$this->redirect(array('action' => 'login'));
pr($this->Member->invalidFields());