2012-04-18 76 views
1

我該怎麼做?symfony 1.4形式 - 如何在提交表單時設置一個字段的值?

我想:

$this->form->getObject()->setWebsiteid($website); 

$this->form->setDefault('websiteid', $website); 

$request->setParameter('websiteid', $website); 

從上面沒有不起作用

我的代碼:

$this->form = new sfGuardRegisterForm(); 

if ($request->isMethod('post')) 
{ 
    $website=new Website(); 
    $website->save(); 

    $this->form->bind($request->getParameter($this->form->getName())); 
    if ($this->form->isValid()) 
    { 
    /* here I try do that */ 
    $this->form->getObject()->setWebsiteid($website); 
    /* here I try do that end */ 

    $user = $this->form->save(); 
    $this->getUser()->signIn($user); 

    $this->redirect('@homepage'); 
    } 
} 

回答

1

是您User模型websiteid一部分?

你在窗體中使用的小工具websiteid

您可以後添加值保存:

$user = $this->form->save(); 
$user->setWebsiteid($website); 
$user->save(); 

但是,第一個解決方案似乎確定我..

+0

是 是 感謝,它的工作原理,封閉我 – quardas 2012-04-18 12:53:44

+1

這確實ISN最好的辦法。邏輯應該是通過doSave()覆蓋形式save()方法的一部分。這樣,與表單相關的所有內容都在同一個事務中,並且還保持調用代碼精簡。 – 2014-05-29 01:15:00

相關問題