Symfony FosUserBundle 从我的默认模板扩展到另一个包
Symfony FosUserBundle extend from my default template from another bundle
在我的 symfony 3.2 项目中,我使用 FOSUserBundle
进行用户注册和身份验证。我想做的是将自定义主题应用于注册表单。
因此我制作了 app/Resources/views/base.html.twig
作为我的应用程序的基本模板:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>{% block title %}Welcome!{% endblock %}</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
{% block stylesheets %}
<link rel="stylesheet" type="text/css" href="{{asset('assets/vendor/bootstrap/css/bootstrap.css')}}" ></link>
<link rel="stylesheet" type="text/css" href="{{asset('assets/vendor/adminlte/adminlte.css')}}" ></link>
<link rel="stylesheet" type="text/css" href="{{asset('assets/vendor/adminlte/skin-blue.css')}}" ></link>
{% endblock %}
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
{% block javascriptsHeader %}
{% endblock %}
</head>
<body class="{{ classes }}">
{% block body %}
{% endblock body %}
{% block javascriptsFooter %}
{% endblock javascriptsFooter %}
</body>
</html>
我也修改了Resources/FOSUSerBundle/views/layout.html.twig
,内容如下:
{% extends AppBundle::base.html.twig %}
{% body %}
{% block fos_user_content %}
{% endblock fos_user_content %}
{% endblock body %}
见于:
* Symfony2: How to extend a Bundle?
* http://symfony.com/doc/current/bundles/FOSUserBundle/overriding_templates.html
但是我得到以下错误:
Unexpected token "punctuation" of value ":" ("end of statement block" expected).
你知道如何使用我的默认模板作为模板注册吗?
您在 extends
中的字符串有误。变化
{% extends AppBundle::base.html.twig %}
至
{% extends '::base.html.twig' %}
它应该可以工作。
注意:使用 ::base.html
意味着模板引擎将在 app/Resources/views/base.html.twig
中查找 base.html
。设置 AppBundle::base.html.twig
是错误的。如果模板位于一个包中(即 AppBundle
- src/AppBundle
),那么路径看起来像
@AppBundle/base.html.twig
.
在我的 symfony 3.2 项目中,我使用 FOSUserBundle
进行用户注册和身份验证。我想做的是将自定义主题应用于注册表单。
因此我制作了 app/Resources/views/base.html.twig
作为我的应用程序的基本模板:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>{% block title %}Welcome!{% endblock %}</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
{% block stylesheets %}
<link rel="stylesheet" type="text/css" href="{{asset('assets/vendor/bootstrap/css/bootstrap.css')}}" ></link>
<link rel="stylesheet" type="text/css" href="{{asset('assets/vendor/adminlte/adminlte.css')}}" ></link>
<link rel="stylesheet" type="text/css" href="{{asset('assets/vendor/adminlte/skin-blue.css')}}" ></link>
{% endblock %}
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
{% block javascriptsHeader %}
{% endblock %}
</head>
<body class="{{ classes }}">
{% block body %}
{% endblock body %}
{% block javascriptsFooter %}
{% endblock javascriptsFooter %}
</body>
</html>
我也修改了Resources/FOSUSerBundle/views/layout.html.twig
,内容如下:
{% extends AppBundle::base.html.twig %}
{% body %}
{% block fos_user_content %}
{% endblock fos_user_content %}
{% endblock body %}
见于: * Symfony2: How to extend a Bundle? * http://symfony.com/doc/current/bundles/FOSUserBundle/overriding_templates.html
但是我得到以下错误:
Unexpected token "punctuation" of value ":" ("end of statement block" expected).
你知道如何使用我的默认模板作为模板注册吗?
您在 extends
中的字符串有误。变化
{% extends AppBundle::base.html.twig %}
至
{% extends '::base.html.twig' %}
它应该可以工作。
注意:使用 ::base.html
意味着模板引擎将在 app/Resources/views/base.html.twig
中查找 base.html
。设置 AppBundle::base.html.twig
是错误的。如果模板位于一个包中(即 AppBundle
- src/AppBundle
),那么路径看起来像
@AppBundle/base.html.twig
.