Je le code suivant dans mon contrôleur ZF2:définir une variable de vue dans le contrôleur constructer
<?php
namespace Accounting\Controller;
use Zend\Mvc\Controller\ActionController,
Zend\View\Model\ViewModel,
Accounting\Model,
Zend\Paginator,
Accounting\Scripts\CMSTranslator;
class AdminController extends ActionController {
protected $translator;
public function setTranslator(CMSTranslator $translator) {
$this->translator = $translator;
return $this;
}
public function __construct(\Doctrine\ORM\EntityManager $em,CMSTranslator $translator) {
$this->em = $em;
//$this->translator = new \Zend\Translator\Translator('ArrayAdapter', __DIR__ . '/../../../lang/lang-fa.php', 'fa');
$this->translator = $translator;
\Zend\Registry::set('tr', $this->translator);
// now you can use the EntityManager!
}
Comme vous pouvez le voir, je suis en utilisant le zend \ module de traducteur.
Je veux l'ajouter à la vue dans mon constructeur de contrôleur. je l'ai déjà essayé:
return ViewModel(array('tr'=>$translator));
Mais cela ne fonctionne pas.
Aidez-nous s'il vous plaît.
Par ailleurs, il ne devrait pas vraiment aucune raison d'utiliser \ Zend \ Registry - vous mettez des objets dans le registre sont essentiellement des variables globales, ce qui n » est pas t bonne forme. Au lieu d'utiliser le registre, pourquoi ne pas utiliser DI pour configurer votre traducteur et l'injecter là où il le faut. – superdweebie
oui ... réponse postée –