如何以 Symfony 形式制作 RadioButton?

2024-01-22

我有必须用 Symfony Form 重做的表单,但我坚持在这个地方:

<div class="currency-label">
    <input checked id="cur1" name="currency" type="radio">
    <label for="cur1">EURO</label>
</div>
<div class="currency-label active">
    <input id="cur2" name="currency" type="radio">
    <label for="cur2">USD</label>
</div>

This is how it looks: how it should look

如何使用 Symfony Forms 制作单选按钮? 在我的表单类中我添加了:

->add('vacancyCurrency', RadioType::class, ['required' => false])

和我的模板

{{ form_widget(form.vacancyCurrency) }}

my form became shorter and obviously no css : how it looks without css and if i add css class to form it looks differently :

{{ form_widget(form.vacancyCurrency, {'attr':
      {'class': 'currency-label'}
}) }}

最好的方法是渲染一个ChoiceType作为单选按钮:

->add(
    'vacancyCurrency', 
    ChoiceType::class, 
    [
        'choices' => [
            'US Dolar' => 'usd',
            'Euro' => 'eur',
        ],
    'expanded' => true
    ]
);

当您有选项时,ChoiceType 字段会呈现为单选按钮multiple = false and expanded = true。选项multiple上面的代码中没有,因为它的默认值是false。您可以找到更多详细信息here https://symfony.com/doc/current/reference/forms/types/choice.html

Edit:

在你的树枝模板中,你只需要添加:

{{ form_widget(form.vacancyCurrency) }}

Edit 2

您在这个答案的评论中说过,您需要将每个单选按钮放在一个<div class="currency-label active">。我相信你不能通过在 Symfony 表单字段本身中设置属性来做到这一点。您在那里拥有的选项,例如choice_attr经营于input,而不是在它周围的 div 中。

可以实现您想要的,但您需要编写一些代码并手动渲染单选按钮,例如:

<div class="form-group">
    <label class="control-label required">Vacancy currency</label>
    {% for child in form.vacancyCurrency %}
        <div class="currency-label active">
            <label for="{{ child.vars.id }}" class="required">
                <input type="radio" id="{{ child.vars.id }}" name="{{ form.vars.id ~ '[' ~ form.vacancyCurrency.vars.name ~ ']' }}" required="required" class="checkbox" value="{{ child.vars.label }}">
                {{ child.vars.label }}
            </label>
        </div>
    {% endfor %}
</div>

当然,您可以使用一些 Javascript 来完成这项工作。例如,您可以呈现表单字段,如下所示:

{{ form_widget(form.vacancyCurrency) }}

它将在 div 中添加每个单选按钮class="radio".

然后,一旦页面准备好,您就可以使用一些 JQuery 将类更改为您想要的:

$(document).ready(function() {
    $(".radio").attr("class", "currency-label active");
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以 Symfony 形式制作 RadioButton? 的相关文章

  • FOSUserBundle & REST Api 调用:如何使用自定义 FormType?

    我在我的 Symfony2 网站上使用 FOSUserBundle 现在我正在开发一个 API 以允许通过 REST API 调用进行注册 我已经覆盖了 FOSUserBundle 的 RegistrationController ApiR
  • Twig:选择某些块并渲染它们

    我正在将 twig 模板引擎集成到 PHP 应用程序中 特别是 我想使用 twig 引擎来渲染表单 了解了 symfony2 如何使用 twig 渲染表单小部件后 他们有一个巨大的模板文件 其中包含所有小部件 如下所示 block pass
  • 访问 PHP 数组对象受保护的属性

    我正在尝试在 Symfony2 中上传多个文件 我正在尝试访问以下请求对象 但无法获取参数属性 如何将文件一一上传 我得到的错误 致命错误 无法访问第 66 行 var www File src Webmuch FileBundle Ent
  • 将 docker-compose.yml 中的包安装到 docker 容器中

    我是 docker 和 docker compose 的初学者 我需要你的帮助 我正在使用 docker compose 制作 PHP NGINX PostgresQL symfony 开发环境 这里是 web image nginx 1
  • Symfony2 安全性 @Secure 注释不起作用

    我正在尝试使用注释来保护我的控制器 namespace Vinny StreamBundle Controller use Symfony Bundle FrameworkBundle Controller Controller use J
  • Symfony2 / 路由 / 使用参数作为控制器或操作名称

    是否可以使用给定参数路由到控制器 操作 例如 my custom route pattern controller action defaults controller AcmeDemoBundle controller action 我希
  • 学说 - 获取下一个和上一个记录

    这样我就已经获取了一些记录 我已创建日期字段 现在我想按日期获取下一条和上一条记录 通过以下方式让它工作 qb this gt createQueryBuilder a next qb gt expr gt gt a created dat
  • 使用 PHPUnit 模拟对象是否有可能期望调用神奇的 __call() 方法?

    我在测试中有一个模拟对象 真实的对象 PageRepository 使用 call 实现了一个神奇的方法 因此如果您调用 pageRepository gt findOneByXXXX value of field XXXX 它将在数据库中
  • Symfony 2 中的可选嵌入形式

    我的系统中有两个实体 Person and Phone如下面的代码 class Person ORM Id ORM Column type integer ORM GeneratedValue strategy AUTO private i
  • 如何将 Ajax 与 Symfony2 集成 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在寻找有关 symfony2 中
  • Sonata 用户管理 - 自定义字段依赖

    我为 FOSUser 扩展了 SonataAdmin 类 并添加了 2 个自定义字段 来自外部数据源的选择类型 Company and Sector 我想做Sector依赖于Company 因此如果用户选择一家公司 它将过滤可用的部门 我虽
  • 如何自定义 FOS UserBundle URL

    我已经安装了FOS用户包 https github com FriendsOfSymfony FOSUserBundle我想将网址自定义为 account login account register account logout代替 lo
  • twig json_encode 空 json

    我正在从 API 接收元素列表 所有元素的格式都很好 当我使用树枝转储其中一个时 我得到以下信息 Leg 2695 id null reservation null airportStart AIX LES MILLES airplaneT
  • FOSUserBundle 和 ACL 业务角色

    这个周末我开始学习 Symfony 2 我没有遇到任何问题 因为我认为该框架有详细记录 我正在使用 FOSUserBundle 包进行 ACL 我想知道是否可以使其类似于 Yii 框架 bizRule return Yii app gt u
  • Api平台所需的过滤器

    我正在使用 API 平台 并且我已经定义了一个自定义过滤器 如下所示https api platform com docs core filters creating custom filters https api platform co
  • 如何使用 PhpUnit 测试在 POST 方法中传递 JSON?

    我正在使用 symfony 3 0 和 phpUnit 框架 3 7 18 单元测试文件 abcControllerTest php namespace AbcBundle Tests Controller use Symfony Comp
  • 无法覆盖 Symfony2 GeneratorBundle 中的标准骨架视图

    我无法覆盖 GeneratorBundle 的骨架视图 我首先尝试在 app Resources SensioGeneratorBundle sculpt crud views index html twig 中添加我的视图 它不起作用 所
  • 覆盖默认标识符生成策略对关联没有影响

    交响乐 2 7 2 学说 ORM 2 4 7 MySQL 5 6 12 PHP 5 5 0 我有一个具有自定义 ID 生成器策略的实体 它工作完美 在某些情况下 我必须使用 手工制作 的 ID 来覆盖此策略 当主实体在没有关联的情况下被刷新
  • FOSUserBundle 密码验证

    我正在尝试覆盖 FOSUserBundle 中当前的密码验证 我尝试了几种选择 但仍然找不到解决方案 为了增加密码的 MinLength 我创建了一个validation yml src Acme UserBundle Resources
  • Symfony2 Twig 扩展

    我在实现树枝扩展时遇到一些问题 我需要创建自己的过滤器 子过滤器 所以我想到了使用twig扩展 我在 MyApp Bundle WebsiteBundle 和文件上创建了一个名为 Extension 的文件夹 网站扩展 php namesp

随机推荐