2010-09-22 5 views
1

J'ai donc créé moi-même un élément de formulaire personnalisé avec une vue personnalisée. Maintenant, je veux pouvoir définir certains paramètres/variables sur cet élément de formulaire et pouvoir y accéder dans l'assistant de vue de mon élément. Comment puis je faire ça?Zend Framework: Comment passer des variables à l'assistant de vue d'un élément de formulaire personnalisé

Voici un exemple de ce que je parle:

ajouter l'élément à la forme:

$element = new My_Form_Element_Picker('elementname'); 
$element->setFoobar('hello'); 
// or 
$form->addElement('Picker', 'elementname', array('foobar' => 'hello')); 
élément de forme

:

class My_Form_Element_Picker extends Zend_Form_Element_Xhtml 
{ 
    public $helper = 'pickerElement'; 
} 

aide de vue:

class My_View_Helper_PickerElement extends Zend_View_Helper_FormElement 
{ 
    public function pickerElement($name, $value = null, $attribs = null) 
    { 
     //now I want to check if the 'foobar' option was set, otherwise use a default value 
     $foobar = 'default'; 
    } 
} 

Répondre

5

T Voici un quatrième argument optionnel pour l'assistant de vue qui pourrait faire l'affaire pour vous.

si vous définissez votre aide de vue comme celui-ci:

public function pickerElement($name, $value=null, $attribs=null, $options=null) { } 

Et puis à l'intérieur de votre élément de forme réelle vous définissez comme ceci:

class My_Form_Element_Picker extends Zend_Form_Element_Xhtml { 

public $helper = 'pickerElement'; 
public $options = array(); 

public function setFoobar($foobar) { 
    $this->options['foobar'] = $foobar; 
} 
} 

Vous constaterez que les options sont passées dans la voir l'aide et peut être utilisé.

Ce code est de la mémoire alors s'il vous plaît pardonner toutes les erreurs, cette méthode fonctionne certainement pour moi bien.

+0

votre mémoire est correcte. =] – Andrew

Questions connexes