在 FOSUseBundle 的表单中添加日历



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

嗨,我有点新的域名,但我相信您应该包括 {%block fos_user_content%}在您的主模板中或在您自己的捆绑包中覆盖它们(然后,您的捆绑包应该包含getParent()方法)

我相信主模板属于(如果您的捆绑包为userBundle)

UserBundleResourcesviewslayout.html.twig

最基本的覆盖物将是

{# UserBundleResourcesviewslayout.html.twig #}
{% extends '::base.html.twig' %}
{% block body %}
    {{ block('fos_user_content') }}
{% endblock %}

// UserBundleUserBundle.php
namespace UserBundle;
use SymfonyComponentHttpKernelBundleBundle;
class UserBundle extends Bundle
{
    public function getParent()
    {
        return "FOSUserBundle";
    } 
}

之后,您可以将要超载的模板复制到相应的捆绑文件夹 UserBundle Resources Views Indectration xx.html.twig从fosuserbundle。

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

最新更新