Возникла исключительная ситуация при создании «UserTable»; экземпляр не возвращен - PullRequest
0 голосов
/ 03 мая 2019

Я новичок в Zend Framework2.

Я получил ошибку.An exception was raised while creating "UserTable"; no instance returned.

Пожалуйста, посмотрите мой код.

Login \ Model \ UserTable.php

protected $tableGateway;

public function __construct(TableGateway $tableGateway)
{
    $this->tableGateway = $tableGateway;
}

public function fetchAll()
{
    $resultSet = $this->tableGateway->select();
    return $resultSet;
}

Login \ Module.php

public function getServiceConfig()
{
    return array(
        'factories' => array(
            'UserTable'          => function($serviceManager) {
                $tableGateway       = $serviceManager->get('UserTableGateway');
                return new UserTable($tableGateway);
            },
            'UserTableGateway' => function ($serviceManager) {
                $dbAdapter          = $serviceManager->get('Zend\Db\Adapter\Adapter');
                $resultSetPrototype   = new ResultSet();
                $resultSetPrototype->setArrayObjectPrototype(NULL);
                return new TableGateway('user', $dbAdapter, NULL, $resultSetPrototype);
            }
        )
    );
}

Login \ src \ Login \ Controller \ LoginController.php

public function getAction()
{
    $serviceManager = $this->getServiceLocator();
    $userTable = $serviceManager->get('UserTable');
    $user = $userTable->fetchAll();
    return $this->redirect()->toRoute('home', ['data' => $user]);
}

local.php

 return array(
  'db' => array(
    'dsn' => 'mysql:dbname=album; host=localhost',
    'username' => 'root',
    'password' => 'root',
  ),
  'service_manager' => array(
    'factories' => array(
        'Zend\Db\Adapter\Adapter'
        => 'Zend\Db\Adapter\AdapterServiceFactory',
    ),
  )
);

когда я просто перенаправляю на дом в getAction() в контроллере, все работает нормально.

Я не могу найти решение для этого.

может кто-нибудь мне помочь.

Заранее спасибо.

ПРИМЕЧАНИЕ: пожалуйста, прокомментируйте, если вам нужно больше деталей.

...