2015-04-17 4 views
1

Я новичок в ZF2, и я последовал за учебник аутентификации, который я нашел здесь: https://samsonasik.wordpress.com/2013/05/29/zend-framework-2-working-with-authenticationservice-and-db-session-save-handler/Показать имя пользователя после входа в ZF2

После входа в систему, я последовал его инструкциям (в комментарии зоны) о том, как использовать $this->identity()

//config/module.config.php .... 
'service_manager' => array(
    'factories' => array(
     'AuthStorage' => 'SanAuthWithDbSaveHandler\Factory\Storage\AuthStorageFactory', 
     'Zend\Authentication\AuthenticationService' => 'SanAuthWithDbSaveHandler\Factory\Storage\AuthenticationServiceFactory', 
    ), 
), 

Но он создает эту ошибку:

"Uncaught exception 'Zend\ServiceManager\Exception\InvalidServiceNameException' with message 'A service by the name or alias "Zend\Authentication\AuthenticationService" already exists and cannot be overridden; please use an alternate name' in C:\xampp1\htdocs\zf2\vendor\zendframework\zendframework\library\Zend\ServiceManager\ServiceManager.php: "

Пожалуйста, кто может помочь мне!

ответ

2

Ошибка, которую вы получаете, совершенно ясна. В нем говорится, что вы пытаетесь зарегистрировать свою службу с именем Zend\Authentication\AuthenticationService, которое уже существует в ZF2. Вы должны изменить имя.

Сделать это изменения в вашей module.config.php:

'service_manager' => array(
    'factories' => array(
     'AuthStorage' => 'SanAuthWithDbSaveHandler\Factory\Storage\AuthStorageFactory', 
    ), 
    'aliases' => array(// make sure "aliases" and not "alias" 
     'Zend\Authentication\AuthenticationService' => 'my_auth_service', 
    ), 
    'invokables' => array(
     'my_auth_service' => 'SanAuthWithDbSaveHandler\Factory\Storage\AuthenticationServiceFactory', 
    ), 
), 
+0

Я попробовал это, по-прежнему ту же ошибку. Я не знаю, что я сделал неправильно. должно быть что-то –

+0

Вы пробовали переименовать свой сервис? –

+0

Нет! можете ли вы арендовать, расскажите мне больше деталей? переименовать его в «module.config.php?»? –

Смежные вопросы