我看到的例子使用Zend\Authentication实例化指向数据库的DbAdapter。但是我想把它传递给我的表网关模型。这有可能吗,还是我误解了什么?
我的Module.php中有这样的设置:
'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);
},
),现在,在控制器操作中,我想做这样的事情:
use Zend\Authentication\Adapter\DbTable as AuthAdapter;
...
$authAdapter = new AuthAdapter(**$this->getUserTable()->getAdapter()**);
$authAdapter
->setTableName('users')
->setIdentityColumn('username')
->setCredentialColumn('password')如何将我的TableGateway模型与Zend\身份验证集成起来?
发布于 2014-04-26 07:04:07
试试这个-
首先,您应该在config/autoload/global.php (或其他文件)中有以下代码
'service_manager' => array(
'factories' => array(
'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory',
),
),第二,在控制人的行动中-
$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');https://stackoverflow.com/questions/22847864
复制相似问题