ZF2: Wie Parameter übergeben forward-plugin, das ich kann dann in der Methode leite ich Sie an?

Habe ich eine Action-Methode in Foo Controller Parameter erfordern:

public function fooAction($one, $two) {
    $a = one;
    $b = $two;
}

Und ich brauche, um nach vorn zu, dass die Methode von einer anderen Methode einige Boo Controller. Und diese Parameter werden by reference parameter. Das einzige Beispiel, dass das Handbuch hat, ist dies:

$result = $this->forward()->dispatch('Boo\Controller\Boo', array('action' => 'boo'));

Keine zusätzlichen Parameter. Aber Sie schreiben:

$params ist ein optionales array von Parametern, mit denen, um zu sehen, eine
RouteMatch Objekt für die Zwecke dieses spezifische Anfrage.

So, ich habe versucht:

$result = $this->forward()->dispatch('Boo\Controller\Boo', array(
                                                      'action' => 'boo',
                                                      'one' => &$one,
                                                      'two' => $two,
                                                 ));

Aber es funktioniert nicht.

Gibt es eine Möglichkeit zur übergabe weiterer Parameter für vorwärts-controller?

UPD:

Diese arbeiten nicht zu:

$result = $this->forward()->dispatch('Boo\Controller\Boo', array(
                                                      'action' => 'boo',
                                                      'params' => array(
                                                          'one' => &$one,
                                                          'two' => $two,
                                                     )));


$result = $this->forward()->dispatch('Boo\Controller\Boo', array(
                                                      'action' => 'boo',
                                                      'options' => array(
                                                          'one' => &$one,
                                                          'two' => $two,
                                                     )));

UPD 2:

Ich kann immer noch nicht die Funktionalität, die ich will (zum übergeben von Parametern mit der forward plugin), aber ich fand andere Lösungen. Vor dem Aufruf der forward plugin, das ich die Variablen die Request Objekt und nach der forward ich Sie aus der Request in meinem boo Aktion meines Boo\Controller\BooController:

//in Foo::fooAction
$this->getRequest()->one = &$one;
$this->getRequest()->two = $two;
$result = $this->forward()->dispatch('Boo\Controller\Boo', array('action' => 'boo'));

//in Boo::booAction
$a = $this->getRequest()->one;
$b = $this->getRequest()->two;

Blöde Lösung, wird es nicht funktionieren mit Ajax-Anfragen. Weiterhin interessiert, wie die übergabe von Parametern mit der vorwärts-plugin. ODER VIELLEICHT, wie man Sie in der booAction. Weil es in nichts in der Request wenn ich den pass mit der forward.

UPD 3 und Finale:

Ich endlich gefunden, wo Sie sich entschieden haben, zu verbergen habe ich Parameter übergeben, mit der forward plugin. Sie steckte Sie in die RouteMatch Objekt.

- Tryyyy zu erraten, wo wir uns verborgen haben Ihr params... Oh yeeah, sind Sie in der RouteMatch natürlich sind Sie da, nicht Sie denken, dass etwas anderes?

Und KEINE info in der forward plugin Abschnitt des Handbuchs!

To get params, ich habe dazu in meinem BooController::booAction:

$param = $this->getEvent()->getRouteMatch()->getParam('nameOfParam');
  • ist Boo einen gültigen Controller-Alias? Wie bereits von der Dokumentation Boo muss entweder ein voll Qualifizierter Klassenname (z.B.Mymodule\Controller\BooController) oder sollte es ein alias für diese controller, die Sie definieren innerhalb Ihrer Konfiguration
  • Ja, es ist ein voll Qualifizierter Klassenname, es ist 'Boo\Controller\Boo' ich habe. Ich schrieb, wie dies in der Frage um es kürzer zu machen. Wechseln Sie jetzt zu vermeiden Dunkelheit.
  • Dies ist immer noch nur ein alias. Es ist sicher davon ausgehen, dass Sie eingerichtet haben, ein invokables alias von Boo\Controller\Boo => Boo\Controller\BooController ? Außer das dein Erster Ansatz der richtige ist. Wie testen Sie, ob der Parameter vorhanden sind? Sie sind definiert in der route-Konfiguration zu? Tihs Beitrag verwendet die Funktionalität, die Sie suchen viel: michaelgallego.fr/blog/2012/10/06/...
InformationsquelleAutor Green | 2012-12-07
Schreibe einen Kommentar