【问题标题】:symfony 1.4 forms - how to set value of one field while submiting the form?symfony 1.4 表单 - 如何在提交表单时设置一个字段的值?
【发布时间】:2012-04-18 12:32:30
【问题描述】:

我该怎么做?

我正在尝试:

$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');
  }
}

【问题讨论】:

    标签: forms symfony1 save symfony-1.4


    【解决方案1】:

    websiteid 是您的 User 模型的一部分吗?

    您在表单中使用websiteid 的小部件吗?

    你可以在保存后添加值:

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

    但第一个解决方案对我来说似乎没问题..

    【讨论】:

    • 这确实不是最好的方法。逻辑应该是通过 doSave() 覆盖的表单 save() 方法的一部分。这样与表单相关的所有内容都在同一个事务中,并且还保持调用代码精简。
    猜你喜欢
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多