2010-12-29 2 views
0

Zend_Formをビューヘルパーから読み込むことはできますか?私はログインアクションメソッドでthiseフォームを使用しています。しかし、私はまた、このフォームをすべてのページ上のナビゲーションで見ることができるようにしたいので(ログインアクションが実際にまだ呼び出されていない状態で)、フォームのpostメソッドはログインアクションメソッドに送信します。ZendのビューヘルパーからZend_Formをロードしますか?

私はそれがビューヘルパーで行われるべきだと思っていますが、私はどのように見えません。

アイデア?

私はこれを試してみました:

class Zend_View_Helper_LoginForm 
{ 
    function getLoginForm(){ 
    $form = new Form_LoginForm(); 
    return $form; 
    } 
} 

と私はこのように私のレイアウトからそれを呼び出す:私のビューヘルパー <?php echo $this->form(); ?>が、これは動作しません。 (でも、私はアクションメソッドを通じて同じフォームを呼び出すことができるよ!)この場合

それは私に(私のヘルパーは、わずか9行長いので意味がありません)このエラー与える:

Warning: Missing argument 1 for Zend_View_Helper_Form::form() in C:\xampplite\htdocs\zendpr\library\Zend\View\Helper\Form.php on line 44

答えて

3

をフォームを参照することができますあなたのビューヘルパーべきZend_View_Helper_Abstractクラスを拡張し、ビューヘルパーのメソッドは、クラスと同じ名前を持つ必要があります。

class Zend_View_Helper_LoginForm extends Zend_View_Helper_Abstract 
{ 
    function loginForm() { 
     $form = new Form_LoginForm(); 
     return $form; 
    } 
} 

、あなたのビュースクリプト内でこのようにそれを呼び出す:

echo $this->loginForm(); 

あなたが呼び出す場合:あなたは

+0

私にそれを打つ。 ;-) –

0

あなたView_Helperフォーム参照をZend_View_Helper_Abstractを拡張し、setviewコマンド()

class Zend_View_Helper_XX extends Zend_View_Helper_Abstract { 

    public $view; 

    public function setView(Zend_View_Interface $view) 
    { 
     $this->view = $view; 
    } 

コントローラーアクションでフォームを初期化を無効にして設定されている

// controller action code 
$this->view->form = $form; 

は、次にビューヘルパーには、ビュー経由

// view helper code 
$this->view->form; 
+0

事であるべきですが、私はしたくありませんこのフォームはすべてのページに表示される必要があるため、アクションメソッドでフォームを初期化してください。すべてのアクションメソッドで初期化する必要があります。だからこそ、私は自分のレイアウトファイルからアクションヘルパを使って呼び出すことにしています... – networkprofile

0
class Zend_View_Helper_LoginForm extents Zend_Form { 

    function getLoginForm(){ 

     $form = new Form_LoginForm();  

     return $form; 
    } 
} 

OR

$this->view->form=$form;

はどちらも、フォームを返すしようとしているビューヘルパーZend_View_Helper_Formを使用している

echo $this->form(); 

。ビューフォームは、ビュー固有のものです。

は、この質問に答えるために、あなたのPHTMLビューファイルに

echo $this->form();

これを追加 - 括弧

を削除することは echo $this->form;

関連する問題