php - Symfony 4 形式 - 变量形式不存在
问题描述
使用 Symfony 4 构建支持工单表单:
在页面控制器中创建路由和函数
/**
* @Route("/support/ticket")
*/
public function ticket(){
return $this->render('support/ticket/ticket.html.twig');
}
public function new(Request $request)
{
// creates a Ticket and gives it some dummy data for this example
$ticket = new Ticket();
$form = $this->createFormBuilder($ticket)
->add('category', ChoiceType::class, array(
'choices' => array(
'ROMAC eHR' => 1,
'ROMAC Website' => 2,
'ROMAC Guide' => 3,
)
))
->add('comment', TextareaType::class)
->add('save', SubmitType::class, array('label' => 'Submit Ticket'))
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
// $form->getData() holds the submitted values
// but, the original `$task` variable has also been updated
$ticket = $form->getData();
// ... perform some action, such as saving the task to the database
// for example, if Ticket is a Doctrine entity, save it!
// $entityManager = $this->getDoctrine()->getManager();
// $entityManager->persist($task);
// $entityManager->flush();
return $this->redirectToRoute('ticket_success');
}
return $this->render('support/ticket/ticket.html.twig', array(
'form' => $form->createView(),
));
}
然后在 twig 模板中渲染表单:
{{ form_start(form) }}
{{ form_errors(form) }}
{{ form_row(form.category) }}
{{ form_row(form.comment) }}
{{ form_end(form) }}
当我加载页面时,我收到一个 Symfony 错误,指出“变量形式不存在”。
我遵循了文档https://symfony.com/doc/current/forms.html。我在哪里/如何找到问题?
解决方案
我假设您在访问“/support/ticket”时遇到此错误
此函数中缺少“表单”变量
public function ticket(){
return $this->render('support/ticket/ticket.html.twig');
}
我会建议将您的代码包装在“if”块中的树枝模板中
{% if form is defined %}
{{ form_start(form) }}
{{ form_errors(form) }}
{{ form_row(form.category) }}
{{ form_row(form.comment) }}
{{ form_end(form) }}
{% endif %}
或者您需要相应地调整控制器功能
推荐阅读
- flutter - 颤振等待尝试捕获
- sql-server - 我如何确定何时可以将 @@ROWCOUNT(或 ROWCOUNT_BIG())值单独归因于单个 DML 操作?
- reactjs - React.js 中的 AFC 中继器和 wp-rest api
- python - 如何移动粒子
- java - 链接列表的“设置”方法的实现?
- javascript - How to write a function to filter an array in javascript?
- python - 单击硒中的按钮
- css - 大网格css没有图片显示
- java - 为什么将“0000:00:00 00:00:00”解析为日期返回-0001-11-28T00:00:00Z?
- jquery - 如何使用来自 API 的 JSON 填充选择列表?