[英]Site wide Zend_Form
如何在我的layout.phtml中添加一個表單?
我希望能夠有一個搜索表單和一個登錄表單,該表單在我網站上的每個表單中都可以保留。
我有一篇博客文章對此進行了解釋: http : //blog.zero7ict.com/2009/11/how-to-create-reusable-form-zend-framework-zend_form-validation-filters/
在您的應用程序文件夾中創建一個窗體文件夾
這是一個示例表格:
<?php
class Form_CreateEmail extends Zend_Form
{
public function __construct($options = null)
{
parent::__construct($options);
$this->setName('createemail');
$title = new Zend_Form_Element_Text('title');
$title->setLabel('Subject')
->setRequired(true)
->addFilter('StripTags')
->addFilter('StringTrim')
->addValidator('NotEmpty');
$info = new Zend_Form_Element_Textarea('info');
$info->setLabel('Email Content')
->setAttribs(array('rows' => 12, 'cols' => 79));
$submit = new Zend_Form_Element_Submit('submit');
$submit->setAttrib('id', 'submitbutton');
$this->addElements(array($title, $info, $submit));
}
}
?>
然后可以從您的控制器中調用它,如下所示:
$form = new Form_CreateEmail();
$form->submit->setLabel('Add');
$this->view->form = $form;
並使用您的視圖顯示它
echo $this->form;
希望這可以幫助。
編輯:如果希望將此內容包含在每個頁面中,則可以創建一個新的幫助程序文件
在您的views文件夾中創建一個helpers文件夾並創建一個loginHelper.php文件
class Zend_View_Helper_LoginHelper
{
function loginHelper()
{
$form = new Form_CreateEmail();
$form->submit->setLabel('Add');
return = $form;
}
}
可以使用以下命令從您的布局中輸出:
<?php echo $this->LoginHelper(); ?>
在您的布局中,只需執行以下操作:
$form = new Loginform();
echo $form->render();
您只需要確保為表單的POST指定一個Controller / Action,這樣就不會將其POST到您當前使用的任何Controller,這是默認行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.