【问题标题】:Symfony2 TimeType Field separate hour's and minute's input fieldsSymfony2 TimeType Field 分隔小时和分钟的输入字段
【发布时间】:2014-10-25 00:56:37
【问题描述】:

我想用TimeType 字段获得两个小时和分钟的输入字段。 我还想为时间和小时的输入字段设置唯一标签、占位符和/或输入值。我还想在 TWIG 中单独渲染每个输入字段,例如

{{ form_row(form.TimeExtern[####HOUR FIELD####]) }}
{{ form_row(form.TimeExtern[####MINUTES FIELD####]) }}

我当前的代码:

$builder->add('TimeExtern', 'time', array(
        'input'  => 'timestamp',
        'widget' => 'single_text',
        'required' => true,
        'label' => 'Externe Zeit',
        'attr' => array(
            'help_text' => 'Zeitformat: Stunden:Minuten',
            'input_group' => array(
                'append' => '.icon-time',
            )
        ),
    ));

这给了我一个小时分钟的输入字段。 我已经阅读了docs,但找不到解决方案。

有什么想法吗?

【问题讨论】:

    标签: php symfony time form-fields timefield


    【解决方案1】:

    form_div_layout.html.twig 使用渲染时间小部件

    {{ form_widget(form.hour, vars) }}
    {% if with_minutes %}:{{ form_widget(form.minute, vars) }}{% endif %}
    {% if with_seconds %}:{{ form_widget(form.second, vars) }}{% endif %}
    

    据我所知,您可以使用

    {{ form_widget(form.TimeExtern.hour) }}
    {{ form_widget(form.TimeExtern.minute)) }}
    

    然后只需在属性哈希中添加您的详细信息(标签、占位符等),例如

    {{ form_widget(form.TimeExtern.hour, {'label': '', 'attr': {'placeholder': '' }}) }}
    {{ form_widget(form.TimeExtern.minute, {'label': '', 'attr': {'placeholder': '' }}) }}
    

    【讨论】:

    • 对象“Symfony\Component\Form\FormView”的方法“小时”不存在
    • 我错过了single_text 部分,这是供选择的。
    • 那么,只有 choise 才有可能,而输入字段则不行?
    • 不是直接的。我能想到的唯一方法是使用TimeType (github.com/symfony/symfony/blob/master/src/Symfony/Component/…) 作为您工作的基础来创建您的获胜字段类型。
    • 好的,谢谢您的提示。我会试试看。也许你也可以帮助我解决我目前的问题? stackoverflow.com/questions/25612300/…
    猜你喜欢
    • 2021-05-13
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 2014-07-14
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    相关资源
    最近更新 更多