在我将验证服务名称从'orm_default'更改为'admin'之前,它已成功工作,并且有必要,因为我有更多使用更多验证服务的模块。Zend Framework 2 + Doctrine 2和验证服务
的问题是,我发现了以下错误:
Fatal error: Uncaught exception 'Zend\ServiceManager\Exception\ServiceNotFoundException' with message 'Zend\ServiceManager\ServiceManager::get was unable to fetch or create an instance for doctrine.authenticationservice.admin'
我module.config.php
'doctrine' => array
(
'driver' => array
(
__NAMESPACE__ . '_driver' => array
(
'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
'cache' => 'array',
'paths' => array(__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity')
),
'orm_default' => array
(
'drivers' => array
(
__NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'
),
)
),
'authentication' => array
(
'admin' => array
(
'object_manager' => 'Doctrine\ORM\EntityManager',
'identity_class' => __NAMESPACE__ . '\Entity\User',
'identity_property' => 'email',
'credential_property' => 'password',
'credentialCallable' => __NAMESPACE__ . '\Model\User::hashPassword'
),
),
),
我Module.php
public function getServiceConfig()
{
return array
(
'factories' => array
(
'Admin\Auth' => function($sm)
{
return $sm->get('doctrine.authenticationservice.admin');
},
'Admin\Form\Auth\Login' => function($sm)
{
return new Form\Auth\Login();
},
),
);
}
你实际上使用了DoctrineModule和DoctrineORMModule的0.8吗? – Ocramius
@Ocramius:没有。我正在使用0.7.x.我在我的composer.json中更改为0.8.x,但它说版本0.8.x中没有doctrine-orm-module。 – rafaame
@Ocramius:好吧,我将我的composer.json更新为dev-master,但我仍然得到相同的错误:带有消息'Zend \ ServiceManager \ ServiceManager :: get'的未捕获异常'Zend \ ServiceManager \ Exception \ ServiceNotFoundException'无法获取或为doctrine.authenticationservice.admin创建一个实例'。 – rafaame