php - 在没有 Twig 的情况下使用 Symfony 表单

标签 php forms symfony twig symfony-forms

我已经设法将 symfony 表单设置为在我的项目中独立工作。但是我只能让它与 Twig 一起工作。我可以在没有 Twig 的情况下呈现表单吗?

我目前的做法是:

#Controller
echo $twig->render('index.html.twig', array(
    'form' => $form->createView(),
));

#Twig File
{{ form_widget(form) }}

是否可以在没有 Twig 的情况下呈现表单?

非常感谢任何帮助

最佳答案

很难找到关于如何使用 Symfony 的表单组件 1) 没有 Twig 和 2) 没有 Symfony 的资源。

我想这是不推荐的,但我自己把它作为第一个起点:

<?php

require 'vendor/autoload.php';

use Symfony\Component\Form\Forms;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;

$form = Forms::createFormFactory()->createBuilder()
    ->add('firstname', TextType::class, ['label' => 'My firstname'])
    ->add('age', IntegerType::class, ['label' => 'My age'])
    ->getForm();

$form->handleRequest(); // Looks into superglobals and detects if the user submitted the form, if so it submits the form with $form->submit()

if ($form->isSubmitted() && $form->isValid()) {
    $data = $form->getData();
    var_dump($data);
}

$formView = $form->createView();

?>

<html>
    <body>
        <form
            action="<?php echo $form->getConfig()->getAction(); ?>"
            method="<?php echo $form->getConfig()->getMethod(); ?>"
        >
            <?php foreach ($formView->getIterator() as $field) { ?>

                <div>

                    <label
                        for="<?php echo $field->vars['id']; ?>"
                    >
                        <?php echo $field->vars['label']; ?>
                    </label>

                    <input
                        type="<?php echo $field->vars['block_prefixes'][1]; ?>"
                        id="<?php echo $field->vars['id']; ?>"
                        name="<?php echo $field->vars['full_name']; ?>"
                        value="<?php echo $field->vars['value']; ?>"
                    />

                    <?php if ($field->vars['required']) { ?>
                        <span>This field is required</span>
                    <?php } ?>

                </div>

            <?php } ?>

            <input type="submit" />
        </form>
    </body>
</html>

关于php - 在没有 Twig 的情况下使用 Symfony 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20519332/

相关文章:

php - php错误消息未在include()函数内浏览

php - 当分隔符不同时,我应该如何在 php 中解析 csv 文件?

php - 如何在 Laravel 中提交表单后重定向确认页面?

Javascript:从 Ruby on Rails 生成的按钮访问 'action' 属性

symfony - 如何在 EventListener 中呈现模板?

php - 如何创建一个查询来搜索同一数据库上的不同表以将用户登录到网站?

php - 比在配置文件中以纯文本形式存储 mysql 密码更好的方法?

html - 如何在 Angular 垫表中将 'search' 框对齐到右侧?

symfony - 基于 ArrayCollection() 填充 Symfony2 中的复选框

php - 如何在 Silex-WebProfiler 中集成 Monolog?