3 Stimmen

Übergabe von nicht Zend_Form Variablen an ein ViewScript

Ich verwende Zend_Form mit einem ViewScript Dekorator. Dieses Formular wird für die Verwaltung von zwei ziemlich einfachen Arten von Objekten sein, aber es ist ein großes Formular, so dass ich gerne ein einziges Formular / eine einzige Verarbeitungsfunktion haben würde.

Also habe ich das hier:

class GameManagementForm extends Zend_Form{

public function __construct($type='flash'){
    parent::__construct();

   //and later
    $this->setDecorators( array( array('ViewScript', array('viewScript' => 'game/game-management.phtml'))));

Was ich tun möchte, ist in der Lage sein, nicht Zend_Form varaiables an das viewScript zu übergeben. Ich habe versucht eine Referenzierung an $this zu übergeben, aber kein solches Glück. Gibt es eine Möglichkeit etwas wie dieses aufzurufen:

$this->setDecorators( array( array('ViewScript', array('viewScript' => 'game/game-management.phtml', $arg))));

Danke für die Hilfe

7voto

smack0007 Punkte 10526

Nach Angaben der API-Dokumente alle Optionen, die auf dem Dekorator außer Separator, Platzierung und viewScript gesetzt sind, werden als lokale Variablen an das viewScript übergeben. So:

 $this->setDecorators(array(array('ViewScript', array(
      'viewScript' => 'game/game-management.phtml',
      'foo' => 'bar'
 ))));

Und dann sollte in Ihrem viewScript 'foo' zu 'bar' werden.

1voto

shukshin.ivan Punkte 10598

Wenn Sie Variablen an das aus dem Controller angezeigte Formular übergeben müssen, verwenden Sie Folgendes

# controller e.g. controllers/PhotosController.php
$this->view->photos = array(1, 2, 3);

und

# viewscript of the form e.g. form/photos.phtml
$this->photos = $this->element->getView()->photos;
var_dump($this->photos);

Sie sehen einen Dump des Arrays.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X