0

認証用の単純なUserAuthプラグインの作成を開始して、ZF2を学習していますが、例外があります。「userAuth」の作成中に例外が発生しました。インスタンスが返されませんでした以前の例外:提供またはインスタンス化されたドライバーオブジェクトは、Zend \ Db \ Adapter \ Driver\DriverInterfaceを実装していません

この行のエラー:$ sm-> get('Zend \ Db \ Adapter \ Adapter')

以下は私のUser\Module.phpです

クラスモジュール{

public function onBootstrap(MvcEvent $e)
{
    $e->getApplication()->getServiceManager()->get('translator');
    $eventManager        = $e->getApplication()->getEventManager();
    $moduleRouteListener = new ModuleRouteListener();
    $moduleRouteListener->attach($eventManager);
}

public function getAutoloaderConfig()
{
    return array(
        'Zend\Loader\ClassMapAutoloader' => array(
            __DIR__ . '/autoload_classmap.php',
        ),
        'Zend\Loader\StandardAutoloader' => array(
            'namespaces' => array(
                __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
            ),
        ),
    );
}

public function getConfig()
{
    return include __DIR__ . '/config/module.config.php';
}

public function getServiceConfig()
{
    return array(
        'invokables' => array(
        ),
        'factories' => array(
            'User\Form\Signin' => function($sm) {
                $form = new Form\Signin();
                $form->setInputFilter(new Form\SigninFilter);
                return $form;
            },
            'User\Auth\Service' => function ($sm) {
                return new \Zend\Authentication\AuthenticationService(
                    new \Zend\Authentication\Storage\Session(),
                    new \Zend\Authentication\Adapter\DbTable($sm->get('Zend\Db\Adapter\Adapter'))
                );
            },
        ),
    );
}

public function getControllerPluginConfig()
{
    return array(
        'factories' => array(
            'UserAuth' => function ($sm) {
                $sl = $sm->getServiceLocator();
                $authService = $sl->get('User\Auth\Service');
                $authAdapter = new \Zend\Authentication\Adapter\DbTable($sm->get('Zend\Db\Adapter\Adapter'));
                $controllerPlugin = new Controller\Plugin\UserAuth();
                $controllerPlugin->setAuthService($authService);
                $controllerPlugin->setAuthAdapter($authAdapter);
                return $controllerPlugin;
            },
        ),
    );
}

}

私がそれを修正するのを手伝ってください。

4

1 に答える 1

0

追加:

use Zend\Db\Adapter\Adapter;

Controller\Plugin\UserAuth.php の先頭へ

と:

extends Adapter

後:

class UserAuth

同じファイルにあります。そうすれば、少なくとも正しい方向に進むことができます。

于 2013-05-07T22:09:31.727 に答える