Php Zend框架2。ZfcUser。在登录表单中添加新元素时,正确的电子邮件/通行证出现身份验证错误

Php Zend框架2。ZfcUser。在登录表单中添加新元素时,正确的电子邮件/通行证出现身份验证错误,php,authentication,zend-framework,login,zfcuser,Php,Authentication,Zend Framework,Login,Zfcuser,当我在ZfcUser的登录表单中添加新元素时,注册用户的正确电子邮件/通行证出现身份验证错误 我在引导函数中添加了新元素,如下所示: <?php namespace SystemUser; use Zend\Mvc\ModuleRouteListener; use Zend\Mvc\MvcEvent; public function onBootstrap($e) { $events = $e->getApplication()->getEventManager(

当我在ZfcUser的登录表单中添加新元素时,注册用户的正确电子邮件/通行证出现身份验证错误

我在引导函数中添加了新元素,如下所示:

<?php

namespace SystemUser;

use Zend\Mvc\ModuleRouteListener;
use Zend\Mvc\MvcEvent;

public function onBootstrap($e)
{
    $events = $e->getApplication()->getEventManager()->getSharedManager();
    $sharedEvents->attach('ZfcUser\Form\Login',
        'init',
        function($e)
        {
            // @var $form \ZfcUser\Form\Login
            $form = $e->getTarget();

            // Configure email input
            $form->get('identity')
                ->setAttribute('placeholder', 'Your email')
                ->setAttribute('class', 'text-input')
                ->setAttribute('title', 'Your email');

            // Configure password input
            $form->get('credential')
                ->setAttribute('placeholder', 'Your password')
                ->setAttribute('class', 'text-input')
                ->setAttribute('title', 'Your password');

            // Configure submit button
            $form->get('submit')
                ->setAttribute('class', 'btn btn-primary submit');

            // Add field "Keep me signed in."
            $form->add(
                array(
                    'type' => 'Zend\Form\Element\Checkbox',
                    'name' => 'keep_signed_in',
                    'options' => array(
                        'label' => 'Keep me signed in.',
                        'use_hidden_Element' => true,
                        'checked_value' => '1',
                        'unchecked_value' => '0'
                    ),
                    'attributes' => array(
                        'id' => 'keep_signed_in',
                    ),
                )
            );

        }
    );

}

听起来您正在尝试做其他模块已经在做的事情:(我知道这不是您问题的答案,但现在您可能不需要答案:)

我找到了解决方案!:)

我忘记了使用required=false为此复选框指定筛选器:

$sharedEvents->attach('ZfcUser\Form\LoginFilter', 'init', function($e) {
        // @var $form \ZfcUser\Form\LoginFilter
        $filter = $e->getTarget();

        // Custom field keep_signed_in
        $filter->add(array(
                'name'       => 'keep_signed_in',
                'required'   => false,
            )
        );

    }
);

如果您遇到身份验证错误,那么很可能是脚本登录时出现问题。这是在PHP脚本中隐藏的吗?我不会对任何人隐藏代码。当我删除代码$form->add(…)时,身份验证开始正常工作。但我需要这个复选框。谢谢你,丹尼尔。如果找不到解决问题的方法,我会试试这个。