Zend新手試圖配置和使用Zend_Form。Zend Form實例化在死亡白屏中無聲無息
只爲記錄我在Zend Framework Version:1.11.1上運行Apache 2.something的Win XP。我正在一個大部分工作正常的網站上工作。 (有人啓動它,我必須擴展它)。
我在表單領域遇到了麻煩,我試圖引入Zend_Form,希望這可以簡化事務。但是嘗試使用Zend_Form會導致它自己的問題。
當我嘗試實例化第一個測試表單時,我得到了死亡白屏 - 甚至沒有錯誤信息。
數據如下:
Dir Structure:
MYAPPNAME
....controllers
....forms
....models
....services
....views
bootstrap.php中包含:
protected function _initAutoLoading()
{
$loader = new Zend_Loader_Autoloader_Resource(array(
'namespace' => 'MYAPPNAME',
'basePath' => APPLICATION_PATH . '/modules/MYAPPNAME',
));
$loader->addResourceTypes(array(
'model' => array(
'path' => 'models',
'namespace' => 'Model'),
'form' => array(
'path' => 'forms',
'namespace' => 'Form'),
'service' => array(
'path' => 'services',
'namespace' => 'Service')));
}
這工作正常模式有相似的名字:
class MYAPPNAME_Model_DataRecordName extends Doctrine_Record
{
etc...
但它似乎是慘遭失敗對於表單...雖然介意你,這是我第一次使用Zend_Form。
我的表單文件MYAPPNAME /表格/ Formtest.php定義:
<?php
class MYAPPNAME_Form_Formtest extends Zend_Form
{
public function init($action){
$this->setAction($action)
->setMethod('post')
->setAttrib('id', 'formtestForm');
$email = $this->addElement('text', 'email',
array('label', => 'EMail'));
)
$submit = $this->addElement('submit', 'Submit and Be Free!');
}// End init
} // End class def
的形式被顯示在一個視圖定義爲:
<div class=""testForm">
<p style="margin-top:20px; margin-bottom:10px"">Explanatory Text</p>
<h2>This is a Form Test</h2>
<?php echo $this->formResponse; ?>
<?php echo $this->form; ?>
<hr>
<p>FORM ABOVE THIS BAR</p>
</div>
視圖工作得很好。定義爲
它被通過一個動作(在工作控制器)管理:
public function formtestAction(){
echo "formtestAction: ENTERED";
$form = new MYAPPNAME_Form_Formtest('ThisController/formtest2');
//$form = "<p>GARBAGE DATA</p>";
if(!empty($form)){$this->view->form = $form;}
else{
$form = "<p>THE FORM VAR IS EMPTY</p>";
$this->view->form = $form;
$formResponse = "<p>INSTANTIATION FAILED</p>";
$this->view->formResponse = $formResponse;
}
}
public function formtest2Action(){
echo "formtest2Action: ENTERED";
}
如果我註釋掉兩者的形式實例化和垃圾數據線,我得到在視圖中有效的輸出。如果我將$ form設置爲「垃圾數據」,我也會得到有效的可預測輸出。
然而,當我嘗試實例化表單對象,我得到只含死亡白屏「formtestAction:已進入」(在頂部的echo語句)
我會慢慢瘋了。
我無法弄清楚這是一個自動加載器問題,路由問題,對象實例化問題還是什麼。
我非常感謝任何建議。
感謝您的閱讀。
你檢查了你的PHP日誌嗎?如果您遇到一些PHP致命錯誤,您很可能最終會出現空白屏幕。此外,致命錯誤不會落入應用程序日誌中(如未捕獲的異常),它們將直接進入PHP日誌。 – Vika 2010-12-06 15:58:03