配送コストプルダウンの動的値を使用してダイナミックマルチオプションを選択しようとしましたが、Zendフォームで保護された変数にアクセスする方法は?
アレイが入ってきて、選択入力がうまく作成されますが、保護された値は省略されます。これは私には意味がありません。私は保護された値にアクセスするためにパブリックゲッターを使ってみましたが、まだ空白になっています。ここ
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
);
}
は、フォームのinit関数内に置かれた$フォームコードです:
$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));
掲載されたコードは正しいと思われます。 $ formオブジェクトを初期化するコードを投稿できますか? –
問題は、静的メソッドのように 'getShippingOpts()'を呼び出そうとしていることでしょうか?関数とプロパティの静的キーワードを追加してみてください。 '$ this-> _ regular'を' self :: $ _ regular'に修正してみてください。 – dbrumann