我有一些问题。我需要在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并没有改变
答案 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模式下清除缓存,否则您将看不到更改。应用于内容的更改不需要清除缓存。