Zend \ ServiceManager \ ServiceManager :: get не удалось получить или создать экземпляр для AuthService

Я захожу на страницу входа и всегда получаю эту ошибку. Я использовал Zend Authentication в моем коде. Вот мой контроллер для страницы входа в систему:

    <?php
namespace Webin\Controller;

use Zend\Session\Container;
use Zend\View\Model\ViewModel;
use Webin\Controller\AppController;
use Webin\Form\LoginForm;
use Webin\Form\Filter\LoginFilter;
use Webin\Utility\UserPassword;

class LoginController extends AppController {

protected $storage;
protected $authservice;
var $title="abc | ";
public function indexAction(){

$request = $this->getRequest();

$view = new ViewModel();
$view->title = $this->title."Login";
$loginForm = new LoginForm('loginForm');
$loginForm->setInputFilter(new LoginFilter() );

if($request->isPost()){
$data = $request->getPost();
$loginForm->setData($data);

if($loginForm->isValid()){
$data = $loginForm->getData();

$userPassword = new UserPassword('md5');
$encyptPass = $userPassword->create($data['password']);
$this->getAuthService()
->getAdapter()
->setIdentity($data['email'])
->setCredential($encyptPass);
$result = $this->getAuthService()->authenticate();

if ($result->isValid())
{

$session = new Container('User');
$session->offsetSet('email', $data['email']);

$this->flashMessenger()->addMessage(array('success' => 'Login Success.'));
// Redirect to page after successful login
}
else
{
$this->flashMessenger()->addMessage(array('error' => 'invalid credentials.'));
// Redirect to page after login failure
}
return $this->redirect()->tourl('/home');
// Logic for login authentication
}
else
{
$errors = $loginForm->getMessages();
//prx($errors);
}
}

$view->setVariable('loginForm', $loginForm);
return $view;
//return $this->redirect()->toUrl('http://www.webmobi.com/auth/signin')->setStatusCode(301);
}

private function getAuthService()
{
if (! $this->authservice) {
$this->authservice = $this->getServiceLocator()->get('AuthService');
//$this->authservice = $this->getServiceLocator()->get('Zend\Authentication\Adapter\AbstractAdapter');
//$db_array = $config['db'];
}
return $this->authservice;
}
public function logoutAction()
{
$session = new Container('User');
$session->getManager()->destroy();
$this->getAuthService()->clearIdentity();
return $this->redirect()->toUrl('/home');
}
}
?>

Мой global.php выглядит так:

    return array(
'db' => array(
'driver'         => 'Pdo',
'dsn'            => 'mysql:dbname=webmobi;host=localhost',
'driver_options' => array(
'PDO::MYSQL_ATTR_INIT_COMMAND' => 'SET NAMES \'UTF8\''
),
),
'service_manager' => array(
'factories' => array(
'Zend\Db\Adapter\Adapter'
=> 'Zend\Db\Adapter\AdapterServiceFactory',
// 'Zend\Authentication\Adapter\AbstractAdapter'
//         => 'Zend\Authentication\AuthenticationServiceInterface',
),
),

);

Кроме того, я следовал за похожими вопросами, но не смог устранить эту ошибку.

Я пробовал эти вопросы о переполнении стека, которые выглядят похоже, но они не помогли.

навигация по zf2 — «Zend \ ServiceManager \ ServiceManager :: get не удалось получить или создать экземпляр для навигации»

помогите пожалуйста Zend \ ServiceManager \ ServiceManager :: get не удалось получить или создать экземпляр для Zend \ Db \ Adapter \ Adapter

Zend \ ServiceManager \ ServiceManager :: get не удалось получить или создать экземпляр для базы данных

Я новичок в ZF2. Пожалуйста помоги?

0

Решение

Похоже, что ключ конфигурации для получения службы аутентификации 'Zend\Authentication\AuthenticationService' и не 'AuthService', Попробуй использовать

$this->authservice = $this->getServiceLocator()->get('Zend\Authentication\AuthenticationService');
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]