2011-02-02 13 views
1

は、私は、フォームにURLパラメータに含まれる値を設定したいSymfony:executeNew()とexecuteCreate()の間で変数を渡す方法は? symfonyの/教義の下

offer/registration/new?offer_id=23 

    public function executeNew(sfWebRequest $request) 
    { 
    // echo $request->gerParameter('offer_id'); 
    // echoes 23 

    $this->form = $this->configuration->getForm(); 
    $this->offer_registration = $this->form->getObject(); 
    } 

    public function executeCreate(sfWebRequest $request) 
    { 
    // echo $request->gerParameter('offer_id'); 
    // echoes nothing 

    $offer = new OfferRegistration(); 
    $offer->setOfferId($offer_id); 
    $this->form = $this->configuration->getForm($offer); 
    $this->offer_registration = $this->form->getObject(); 

    $this->processForm($request, $this->form); 

    $this->setTemplate('new'); 
    } 

にexecuteNew()とexecuteCreate()私は、右を設定することができるようにとの$ OFFER_IDを渡す方法フォーム上でオファーされますか?

PS:私は管理者のバックエンドモジュール

答えて

2

で働いていることを正確にあなたが新しいリンクをクリックしたときにパラメータを渡す必要があります。デフォルトでは、symfonyジェネレータはNEWオブジェクトの作成時にパラメータを渡しません。

生成されているリンクを変更するには、作成されたテンプレートファイルを変更する必要があります。これを行う最善の方法は、キャッシュフォルダからファイルを取り出して/ backend/modules/templatesフォルダにコピーしてから、そのファイルを変更することです。 adminジェネレータのテンプレートシステム上

詳しい情報は、あなたが新しいリンクを作成して生成したファイルを見つけたら、あなたは、パラメータを追加するためにそのリンクを変更することができます

hereを見つけることができます。

+0

ありがとうございましたJoe ;-) –

+0

私の場合は、*私が推測する*:<?php echo $ helper-> linkToSave($ form-> getObject()、array( 'params' => array($ offer_id => $ request-> getParameter( 'offer_id'))、 'class_suffix' => 'save'、 'label' => 'Save'))?>私は正しい? –

+0

いいえ - $ requestオブジェクトはテンプレートで使用できません。アクションに渡すIDを決定する必要があります。 $ offer_id => $ idVariable ---新しいリンクが索引に表示されるので、executeIndexアクション($ this-> idVariable = $ foo)で変数を設定できます。 – jgallant

関連する問題