【问题标题】:add calendar in FOSUseBundle's form以 FOSUseBundle 的形式添加日历
【发布时间】:2015-05-07 17:38:25
【问题描述】:

我有一些问题。我需要在 FOSUserBundle 日历中添加注册模板,该模板允许选择生日用户的 - 标准的 html 标记日期不适合。为了做到这一点,我使用了 jQuery 的 datepicker:

  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
        <script src="//code.jquery.com/jquery-1.10.2.js"></script>
        <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
        <link rel="stylesheet" href="/resources/demos/style.css">
        <script>
            $(function () {
                $("#fos_user_registration_form_birthday").datepicker({
                    changeMonth: true,
                    changeYear: true,
                    yearRange: '1950:2010',
                });
            });
        </script>
        <form action="{{ path('fos_user_registration_register') }}" {{ form_enctype(form) }} method="POST" class="fos_user_registration_register">
            {{ form_errors(form) }}
            <ol>
             [.........]
                <li>
                    {{ form_label(form.birthday) }}
                    {{ form_widget(form.birthday) }}
                    {{ form_errors(form.birthday) }}
         
                {{ form_rest(form) }}
                </li>

                    <input type="submit" value="{{ 'registration.submit'|trans }}" />
                </li>
            </ol>
         [.........]
        </form>

它工作正常,但如果我覆盖模板并添加:

{%extends 'MyBlogBundle::layout.html.twig'%}
{% block content %}
  [ form registration]
{% endblock%}

它不起作用。
那么,我做错了什么?
我还有一个问题 - 如何在注册表中添加或更改课程、ID?我在模板中试过了

{{ form_widget(form.birthday {'attr': {'class': 'task_field'}}) }}

在 RegistrarionFormType 中:

 ->add('birthday','text',array('attr'=>array('id'=>'text_field')))

但 id 没有改变。

【问题讨论】:

    标签: symfony twig fosuserbundle


    【解决方案1】:

    您好,我是这个域的新手,但我相信您应该包括 {% 块 fos_user_content %} 在你的主模板中或在你自己的包中完全覆盖它们(你的包类应该包含 getParent() 方法)

    我相信主模板存在(如果您的包名为 UserBundle)

    UserBundle\Resources\views\layout.html.twig
    

    最基本的覆盖将是

    {# UserBundle\Resources\views\layout.html.twig #}
    
    {% extends '::base.html.twig' %}
    
    {% block body %}
        {{ block('fos_user_content') }}
    {% endblock %}
    
    
    // UserBundle\UserBundle.php
    namespace UserBundle;
    
    use Symfony\Component\HttpKernel\Bundle\Bundle;
    
    class UserBundle extends Bundle
    {
        public function getParent()
        {
            return "FOSUserBundle";
        } 
    
    }
    

    之后,您可以将要重载的模板复制到相应的捆绑文件夹,例如 UserBundle\Resources\views\Registration\xx.html.twig 来自 FOSUserBundle。

    更改项目中的“包含策略”后,您还必须在 DEV 模式下清除缓存,否则您将看不到更改。应用于内容的更改不需要清除缓存。

    【讨论】:

      猜你喜欢
      • 2020-09-01
      • 2017-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-09
      • 1970-01-01
      相关资源
      最近更新 更多