php - 未知的“表单”函数 php symfony/form twig
问题描述
在我的项目中,我安装了 symfony / form、symfony / twig-bridge,但是每当我运行模板时,我都无法识别我的标签来呈现我可能错过的表单?两者都在版本 5 中,一直显示这个,未知的“form”函数,未知的“form_start”函数
require 'vendor/autoload.php';
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Forms;
use Symfony\Component\Form\Extension\Core\Type\FormType;
use Symfony\Component\Validator\Validation;
use Symfony\Bridge\Twig\Form\TwigRendererEngine;
use Symfony\Component\Form\Extension\Validator\ValidatorExtension;
use Symfony\Component\Form\Extension\Csrf\CsrfExtension;
use Symfony\Component\Security\Csrf\CsrfTokenManager;
use Symfony\Component\Translation\Translator;
use Symfony\Component\Translation\Loader\XliffFileLoader;
use Symfony\Bridge\Twig\Extension\TranslationExtension;
use Symfony\Bridge\Twig\Extension\FormExtension;
use Symfony\Component\Form\FormView;
class TaskController extends AbstractType
{
public function new()
{
// creates a task object and initializes some data for this example
$formFactory = Forms::createFormFactory();
$form = $formFactory->createBuilder()
->add('task', TextType::class)
->add('dueDate', DateType::class)
->add('save', SubmitType::class, ['label' => 'Create Task'])
->getForm();
$loader = new \Twig\Loader\FilesystemLoader('vista/parte');
$twig = new \Twig\Environment($loader, ['debug' => true]);
return $twig->render('foms.html.twig', ['form' => $form->createView()]);
}
}
(new TaskController())->new();
解决方案
你在这里遗漏了一些东西。
控制器和表单类型是两个不同的东西。您可以在控制器中创建表单,然后将其传递给视图。
但是,如果您想将表单与控制器分开,您可以创建一个将扩展的表单类型AbstractType
这应该是这样的:
class TaskController extends AbstractController // add the use for that one
{
public function new()
{
$form = $this->createFormBuilder()
->add('task', TextType::class)
->add('dueDate', DateType::class)
->add('save', SubmitType::class, ['label' => 'Create Task'])
->getForm();
return $twig->render('foms.html.twig', ['form' => $form->createView()]);
}
}
推荐阅读
- ssl - 如何重现成功的 openssl_verify
- javascript - javascript生成的CSS类不应用样式
- node.js - 使用 mongodb atlas 的跨域请求阻止了 Node Js
- excel - 尝试将列中的单元格与数组进行比较,如果不匹配则隐藏单元格的行
- garrys-mod - Sending object through http.Post() not working
- javascript - 域感知反应路由器
- html - HTML解析器到csv,输出文件夹中没有结果
- html - Bootstrap 4如何使用css通过清除按钮颜色更改来更改输入搜索
- selenium - Selenium, Robot framework 使用这个我们必须点击下面描述的按钮
- python - 用于在 .txt 文件中添加逗号并将 ASCII 值组织成行的自动化脚本?