2012-04-18 53 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

相关问题