我通过在以下位置创建一个类似对象来实现getServiceConfig()
Zend AuthenticationService
Auth Module.php
:
'AuthService' => function($sm) {
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$dbTableAuthAdapter = new DbTableAuthAdapter($dbAdapter, 'tblUSRUsers', 'Email', 'Password', "MD5(?)");
$authService = new AuthenticationService();
$authService->setAdapter($dbTableAuthAdapter);
$authService->setStorage($sm->get('Application\Model\MyAuthStorage'));
return $authService;
},
在控制器动作中,我通过
$this->getServiceLocator()
->get('AuthService');
对于身份验证,我使用获取值
$authservice = $this->getServiceLocator()->get('AuthService');
$arrUserDetails = $authservice->getIdentity();
它工作正常,这些值可用。
但问题是ServiceLocator
在 Controller 构造函数中不可用,因此无法在那里编写上述代码。在每个动作中编写此代码似乎不是一个好习惯。有人可以帮忙吗?