ich versuche, eine dynamische multioption zu erstellen, wählen Sie dynamische Werte für eine Versandkosten Pulldown,Wie kann ich auf eine geschützte Variable in Zend-Formularen zugreifen?
das Array kommt und erstellt die Select-Eingabe in Ordnung, aber die geschützten Werte sind weggelassen. Das ergibt für mich keinen Sinn. Ich habe sogar versucht, mit einem öffentlichen Getter auf den geschützten Wert zugreifen, aber es kommt immer noch leer.
protected $_regular = 4.95;
protected $_oneDay = 14.95;
protected $_twoDay = 14.95;
public function getShippingOpts(){
return array(
"regular"=>"Regular 5-7 Business Days $".$this->_regular,
"two-day"=>"Express 3-4 Business Days $".$this->_twoDay,
"one-day"=>"Overnight 1-2 Business Days $".$this->_oneDay
);
}
hier ist der Code innerhalb der init-Funktion des Formulars platziert $ form:
$shType = new Zend_Form_Element_Radio("sh_type");
$shType->setLabel("Please select a type of shipping")
->setAttrib('class', 'co-shipping-type')
->setRequired(true)
->setMultiOptions(ORed_Shipping_LabelFactory::getShippingOpts());
$shTypeToSubmit = new Zend_Form_Element_Hidden('speed');
$shipping2->addElements(array($shType, $shTypeToSubmit));
Der Code wie angegeben, scheint korrekt. Können Sie den Code posten, der das $ form-Objekt initialisiert? –
Vielleicht ist das Problem, dass Sie versuchen, 'getShippingOpts()' wie eine statische Methode aufzurufen? Versuchen Sie, das static-Schlüsselwort, die Funktion und die Eigenschaften hinzuzufügen (und '$ this -> _ regular 'zu' self :: $ _ regular' zu korrigieren. – dbrumann