【问题标题】:How to save formdata in a Database in Symfony when using no Formbuilder?不使用 Formbuilder 时,如何在 Symfony 的数据库中保存表单数据?
【发布时间】:2020-12-10 12:24:28
【问题描述】:

我正在为投票开发一个 Symfony Bundle。 我尝试使用 Symfony 表单构建器构建我的投票,但由于我的数据复杂,我遇到了很多问题,我决定在 html 文件中手动构建我的表单。


现在还有没有可能做这样的事情:

if($form->isSubmitted() && $form->isValid())?


我是否必须将我的表单发送到另一个像这样的 php 文件: <form method="post" action="yourscript.php"> 或者我仍然可以在我的控制器中捕获它,它还具有打开轮询文件的操作。


或者我必须按照here的描述去做吗?

对于这个菜鸟问题我很抱歉,但是当我使用 Symfony 搜索表单控件时,我只能找到解释如何使用表单生成器的内容。

【问题讨论】:

  • 是的,你仍然可以使用 Symfony 控制器。您需要从 Request 对象中提取表单数据,然后填充实体以持久保存到数据库。你不能使用和$form方法(验证,isSubmitted())等。
  • @craigh 我如何提取表单数据?像这样:<form class="campaignForm" method="post" action="{{ path('path_to_the_method_that_processes_the_form_data')}}"> 那么我如何在这个方法中获取表单数据呢?
  • 同意 Craig,当你使用像 Symfony 这样的框架时(不仅是它的一些组件),你应该按照“Symfony 方式”使用它,但是要正确使用它,你需要先了解如何使用它的力量,为此有一个非常大的文档要阅读(在使用它之前),你不能避免这样做:-) PS:我总是觉得看看源代码很有用,看看东西是如何工作的引擎盖。
  • @Cerad 我的提示是一般性的,与表单组件没有严格的关系。顺便说一句,我总是更喜欢旧的“如果可行就更好”:-) 快乐编码!
  • @gp_sflover 我按照 symfony 的方式做了 2 个月,但后来有一个问题我很努力地挣扎,向我的同事寻求帮助,问了两个关于堆栈溢出的问题,都没有答案,在尝试和尝试并且总是在解决另一个问题时遇到新问题后,我们决定在没有表单构建器的情况下制作表单。

标签: php forms symfony form-control


【解决方案1】:

您可以使用 Request 执行与 Form 类似的操作。

if ($request->isMethod(Request::POST)) { //check if method is post
  $request->request->get('yourFieldName'); //get values of  post data
}

我建议你使用 Symfony Form 而不是这个!

【讨论】:

  • 有没有办法在一个数组中获取所有表单数据,以便我可以遍历它?喜欢$all = $request->request->get(all_form_data);
  • $request->request->all() EDIT:如果它帮助你不要忘记标记为已解决并投票支持我的答案
猜你喜欢
  • 2018-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-01
  • 1970-01-01
相关资源
最近更新 更多