這是我第一次注意到這一點,它讓我感到很驚訝。表單無權訪問其值。這是正常的嗎?
我有一個簡單的文本元素zend_form。
$name = new Zend_Form_Element_Text('name');
$name->setLabel('Name');
$this->addElement($name);
奇怪的是,當我提交表單,並嘗試閱讀形式本身的價值(我在做一些調試不是有控制器),$name->getValue()
不工作,但直接$ _POST的作品。
echo $name->getValue(); //gives blank
echo $_POST['name']; //gives the right value
這是正常的嗎?表單沒有它的價值?我認爲最好用$ field-> getValue()來讀取它們,而不是直接訪問$ _POST值。
第二個問題是,要讀取表單中的值,是否有比直接從$ _POST訪問更好的方法?
This works。但是,真的如何才能讓表單無法訪問其值?它需要這些值給驗證器和過濾器。實際上我正在做的是將值傳遞給自定義過濾器。我認爲過濾器會自動從已添加的字段中獲取$值,但這不起作用,所以我將自己的$值傳遞給過濾器。當然,如果表單可以讀取它自己的值,那麼我就可以直接傳遞它,而不需要控制器。我可能會發布有關過濾器的其他問題。這可能是我在那裏做錯了事。 – jblue 2011-01-24 01:38:24
「但實際上,表單可能無法訪問其值」 - 它確實可以顯式訪問所傳遞的數據。 ZF無法預測從何處獲取數據:$ _POST,$ _GET或者甚至從文件中獲取數據。 – zerkms 2011-01-24 01:40:29