2017-08-17 1 views
-1

J'ai un projet ZF3 et un contrôleur d'index qui accède à une seule table postgres. J'ai les usines habituelles configurationzend framework 3, plusieurs tables db dans un contrôleur

return array(
     'factories' => [ 
      Model\IsdepotstockTable::class => function($container) { 
       $tableGateway = $container->get(Model\IsdepotstockTableGateway::class); 
       return new Model\IsdepotstockTable($tableGateway); 
      }, 
      Model\IsdepotstockTableGateway::class => function ($container) { 
       $dbAdapter = $container->get(AdapterInterface::class); 
       $resultSetPrototype = new ResultSet(); 
       $resultSetPrototype->setArrayObjectPrototype(new Model\Isdepotstock()); 
       return new TableGateway('isdepotstock', $dbAdapter, null, $resultSetPrototype); 
      }, 
     ], 

J'ai aussi mon constructeur de contrôleur ainsi:

public function __construct(IsdepotstockTable $table) 
{ 
    $this->isdepotstockTable = $table; 
} 

Ma question est, si je veux accéder à une deuxième table, comment puis-je modifier la déclaration de construction pour gérer plusieurs tables? Évidemment, je dois ajouter les usines pour la table supplémentaire autant que je comprends.

J'ai regardé la documentation de ZF3 mais je ne trouve aucun exemple.

Merci

Répondre

1

je crois que vous êtes à la recherche d'une fonction d'usine de contrôleur qui instancier le contrôleur et de transmettre les arguments au constructeur.

Ajoutez votre deuxième classe de table en tant que 2ème argument de la méthode __construct(), puis créez votre fabrique en module.config.php.

<?php 
use Zend\ServiceManager\Factory\InvokableFactory; 

return [ 
    // ... 

    'controllers' => [ 
     'factories' => [ 
      Controller\IndexController::class => InvokableFactory::class 
      // Put other controllers registration here 
     ], 
    ], 

    // ... 
]; 

Voici un livre open source gratuit sur ZF3, je lie à la section d'enregistrement du contrôleur pour votre référence. Bonne chance! https://olegkrivtsov.github.io/using-zend-framework-3-book/html/en/Model_View_Controller/Controller_Registration.html