[ZF2] Accéder à la DB depuis un PluginCOntroller
Bonjour,
Je suis en train de développer un Plugin de Provider Oauth.
J'ai donc besoin d'accééder à la DB depuis mon Plugin.
J'ai donc créé les factories dans mon Module.php:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| public function getServiceConfig()
{
return array('factories' => array('Oauth\Model\AccessTokenTable' => function($sm) {
$tableGateway = $sm->get('AccessTokenTableGateway');
$table = new AccessTokenTable($tableGateway);
return $table;},
'AccessTokenTableGateway' => function ($sm) {
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new AccessToken());
return new TableGateway('oauth_provider_access_token', $dbAdapter, null, $resultSetPrototype);},
'Oauth\Model\ConsumerTable' => function($sm) {
$tableGateway = $sm->get('ConsumerTableGateway');
$table = new ConsumerTable($tableGateway);
return $table;},
'ConsumerTableGateway' => function ($sm) {
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new Consumer());
return new TableGateway('oauth_provider_consumer', $dbAdapter, null, $resultSetPrototype);},
),
.... |
Pour appeler une table, je fais donc dans mon ControllerPlugin:
Code:
1 2 3 4 5 6 7 8 9 10
| protected $consumerTable;
public function getConsumerTable()
{
if (!$this->consumerTable) {
$sm = $this->sm;
$this->consumerTable = $sm->get('Oauth\Model\ConsumerTable');
}
return $this->consumerTable;
} |
Où $sm est obtenu en faisant $this->getServiceLocator() dans mon Controller.
En appelant la page, j'obtiens l'erreur:
Citation:
An abstract factory could not create an instance of oauthmodelconsumertable(alias: Oauth\Model\ConsumerTable).
Qu'est-ce qu'une abstract factory ?
Que signifie l'erreur ?
Y-a-t'il d'autres solutions pour accéder à la DB ?
Je suis débutant avec ZF2...
Merci d'avance.
Gp2mv3