以FOSUseBundle的形式添加日历

时间:2015-05-07 17:38:26

标签: symfony twig fosuserbundle

我有一些问题。我需要在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并没有改变

1 个答案:

答案 0 :(得分:0)

嗨,我对这个领域有点新意,但我相信你应该加入     {%block fos_user_content%} 在你的主模板中或在你自己的包中覆盖它们(你的bundle类应该包含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 \资源\意见\注册\ xx.html.twig 来自FOSUserBundle。

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