forms - Symfony Form "POST" -> 检索表单的值以将它们输入数据库
问题描述
大家晚上好,
我允许自己与您联系,因为我需要有关在 Symfony 中以“POST”形式检索值的帮助。
此表格的目的是:“用户可以通过填写表格在网站上发表意见”
我的问题:我在我的控制器中进行了测试以执行“功能”,这将允许我从 POST 表单中检索用户发送的信息以将它们发送到我的数据库,除了几次尝试后,我没有失败输入我的数据库中的信息,除了“NULL”
你可以帮帮我吗?先感谢您。
我的 HTML.TWIG “POST” 表单:
<div class="col-md-8 mx-auto" id="formavisall">
<form method="post">
<div class="row">
{% for message in app.flashes('message') %}
<div class="col-md-12" style="text-align: center">
<div class="alert alert-success">
{{ message }}
</div> <!-- FIN p-3 my-2 rounded-2 success -->
</div> <!-- FIN COL-MD-12 (ID MESSAGECONFIRMATIONUSER) -->
{% endfor %}
{% for message in app.flashes('error') %}
<div class="col-md-12" style="text-align: center">
<div class="alert alert-danger">
{{ message }}
</div> <!-- FIN p-3 my-2 rounded-2 success -->
</div> <!-- FIN COL-MD-12 (ID MESSAGECONFIRMATIONUSER) -->
{% endfor %}
<div class="col-md-12" id="inputradionoteavis">
<input type="radio" name="note" id="note" value="1">
<label for="note"></label>
<input type="radio" name="note" id="note" value="2">
<label for="note"></label>
<input type="radio" name="note" id="note" value="3">
<label for="note"></label>
<input type="radio" name="note" id="note" value="4">
<label for="note"></label>
<input type="radio" name="note" id="note" value="5">
<label for="note"></label>
</div>
<div class="col-md-6" id="inputformcontact">
<div class="form-group">
<label for="nameavis">Nom :</label>
<input type="text" class="form-control" name="nom" id="nom">
</div> <!-- FIN form-group -->
</div>
<div class="col-md-6" id="inputformcontact">
<div class="form-group">
<label for="firstnameavis">Prénom :</label>
<input type="text" class="form-control" name="prenom" id="prenom">
</div> <!-- FIN form-group -->
</div>
</div>
<div class="row">
<div class="col-md-12" id="messageareacontact">
<div class="form-group">
<label for="messageavis">Message :</label>
<textarea class="form-control" id="message" name="message"></textarea>
</div> <!-- FIN form-group -->
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="form-group">
<input type="hidden" name="section" value="content">
</div> <!-- FIN form-group -->
</div>
</div> <br>
<div class="row" id="rowbuttoncontact">
<div class="col-md-5 mx-auto">
<button type="submit" class="form-control" id="buttonformcontact">Laisser un avis</button>
</div>
</div>
</form>
</div>
</div>
我的控制器中的“测试”功能:
if($request->isMethod('POST')){
$em = $this->getDoctrine()->getManager();
$avis = new Avis();
// On vérifie si les deux mots de passe sont identiques
if($request->request->get('nom') && $request->request->get('prenom') && $request->request->get('message')
&& $request->request->get('note') && $request->request->get('section')){
$em->persist($avis);
$em->flush();
$this->addFlash('message', 'L\'avis a été publié');
return $this->redirectToRoute('accueil');
}else{
$this->addFlash('error', 'L\'avis n\'a pas été publié');
}
}
解决方案
您似乎没有$avis
在控制器中更新。您应该尝试在其中添加一些if
内容以设置属性:
$avis->setNom($request->request()->get('nom'));
$avis->setPrenom($request->request()->get('prenom'));
$avis->setMessage($request->request()->get('message'));
...
Symfony 中还有一个Form
组件可以处理所有这些,从而为您省去麻烦:https ://symfony.com/doc/current/forms.html
推荐阅读
- javascript - 使用 fetch 时在浏览器控制台中处理错误消息
- android - 为 build.gradle 使用 Kotlin 和 buildSrc 不会显示可用的库版本更新?
- php - 我如何制作一个将数据添加到数据库的 php 页面,如果数据已经存在,则将其删除?
- excel - 以独特的字母顺序自定义排序
- laravel - ErrorException 视图中未定义的变量数据
- swift - Swift 删除数组括号和双引号
- android - 如何在颤动中将列表对象发布到 Cloud Firestore Firebase
- excel - 需要 VBA 代码在 Excel 中绘制一系列线性数据,为每个系列创建回归方程,然后在 Excel 表中写入回归方程
- python - 如何正确使用带有 Selenium Chrome Webdriver、Python 的自定义配置文件
- java - 如何修复无法取消引用 int 的 java 错误