在我將驗證服務名稱從'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