首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >zend 2:如何将Zend\Authentication\Adapter\DbTable连接到Zend\Db\TableGateway\TableGateway

zend 2:如何将Zend\Authentication\Adapter\DbTable连接到Zend\Db\TableGateway\TableGateway
EN

Stack Overflow用户
提问于 2014-04-03 20:04:43
回答 1查看 125关注 0票数 1

我看到的例子使用Zend\Authentication实例化指向数据库的DbAdapter。但是我想把它传递给我的表网关模型。这有可能吗,还是我误解了什么?

我的Module.php中有这样的设置:

代码语言:javascript
复制
    'MyModule\Model\UserTable' => function($sm) {
        $tableGateway = $sm->get('UserTableGateway');
        $table = new UserTable($tableGateway);
        return $table;
    },
    'UserTableGateway' => function($sm) {
        $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
        $resultSetPrototype = new ResultSet();
        $resultSetPrototype->setArrayObjectPrototype(
            new User());
        return new TableGateway('view_users', $dbAdapter, null,
            $resultSetPrototype);
    },
),

现在,在控制器操作中,我想做这样的事情:

代码语言:javascript
复制
use Zend\Authentication\Adapter\DbTable as AuthAdapter;
...
$authAdapter = new AuthAdapter(**$this->getUserTable()->getAdapter()**);
$authAdapter
    ->setTableName('users')
    ->setIdentityColumn('username')
    ->setCredentialColumn('password')

如何将我的TableGateway模型与Zend\身份验证集成起来?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-26 07:04:07

试试这个-

首先,您应该在config/autoload/global.php (或其他文件)中有以下代码

代码语言:javascript
复制
'service_manager' => array(
    'factories' => array(
        'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory',
    ),
),

第二,在控制人的行动中-

代码语言:javascript
复制
$dbAdapter = $this->getServiceLocator()->get('Zend\Db\Adapter\Adapter');

// create auth adapter
$authAdapter = new AuthAdapter($dbAdapter);

// configure auth adapter
$authAdapter->setTableName('users')
        ->setIdentityColumn('username')
        ->setCredentialColumn('password');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22847864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档