0

也许我遗漏了一些东西,但在 symfony 示例中,在表单提交操作中,没有任何内容表明表单数据已保存到数据库中。(链接)。如何将所有内容保存到数据库?

链接中的示例:

public function executeSubmit($request)
{
  $this->forward404Unless($request->isMethod('post'));

  $params = array(
    'name'    => $request->getParameter('name'),
    'email'   => $request->getParameter('email'),
    'message' => $request->getParameter('message'),
  );

  $this->redirect('contact/thankyou?'.http_build_query($params));
}
4

3 回答 3

1

如果您有一个基于模型的表单(例如 Doctrine 或 Propel 对象),您需要在操作中执行以下操作:

$this->form = new MyForm();

$this->form->bind($params);

if ($this->form->isValid())
{
  $this->form->save();
}

这些似乎是您缺少的关键步骤。正如其他人所指出的,Symfony 教程提供了很好的例子。

于 2010-03-19T09:10:37.633 回答
0

看看http://www.symfony-project.org/forms/1_4/en/04-Propel-Integration

在 Web 项目中,大多数表单用于创建或修改模型对象。由于 ORM,这些对象通常在数据库中序列化。Symfony 的表单系统提供了一个额外的层用于与 Propel 接口,symfony 的内置 ORM,使得基于这些模型对象的表单实现更容易。
于 2010-03-19T07:26:14.977 回答
0

除了 VolkerK 的链接之外,jobeet 教程还涵盖了学说(或推进,如果您愿意将其作为您的 ORM)形式。

http://www.symfony-project.org/jobeet/1_4/Doctrine/en/10

于 2010-03-19T08:10:26.743 回答