我有一個關於在其他佈局中包含FOSUserBundle登錄表單的問題。 在某種程度上,我想有兩個登錄表單:包含FOSUser登錄表單到主頁
- 一個登錄形式,沒有擴展,我可以在這裏包括無處不在,例如在我的主頁誰伸出我的基本佈局
- 一個登錄表單,顯示例如,當你調用/登錄
我嘗試的東西,但我有這樣的錯誤:
一個例外模板(「未找到路線‘的渲染過程中被拋出GET安全:LoginBisAction’ 「)在rSWelcomeBundle中:主頁:index.html.twig在第15行。
我有兩個捆綁包:一個WelcomeBundle和一個UserBundle,它擴展了FOSUserBundle。
在RS/WelcomeBundle我有我的主頁,並且我包括在右塊登錄表單:
{% extends "rsWelcomeBundle::layout.html.twig" %}
{% block title "Page d'accueil" %}
{% block body %}
<div class="span6">
<div class="well">
<h2>Présentation du site</h2>
<p>Rejoignez nous, parce que ceci cela...etc ! </p>
<p><a href="{{ path('fos_user_registration_register') }}" class="btn ">Je m'inscris !</a></p>
</div>
</div>
<div class="span6">
<div class="well">
{% render 'FOSUserBundle:Security:LoginBisAction' %}
</div>
</div>
{% endblock %}
在RS/UserBundle,在根,在rsUserBundle.php我延伸FOSUserBundle:
<?php
namespace rs\UserBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class rsUserBundle extends Bundle
{
public function getParent()
{
return 'FOSUserBundle';
}
}
在RS/UserBundle/Ressources /視圖/ layout.html.twig:
{% extends "rsWelcomeBundle::layout.html.twig" %}
{% block body %}
<div class="span4 offset4">
<div class="well">
{% for key, message in app.session.flashbag.all() %}
<div class="alert alert-{{ key }}">
{{ message|trans({}, 'FOSUserBundle') }}
</div>
{% endfor %}
{% block fos_user_content %}
{% endblock fos_user_content %}
</div>
</div>
{% endblock %}
在RS/UserBun DLE/Ressources /視圖/安全/ login.html.twig:
{% extends "FOSUserBundle::layout.html.twig" %}
{% block fos_user_content %}
{% if error %}
<div>{{ error|trans({}, 'FOSUserBundle') }}</div>
{% endif %}
{% include "UserBundle:Security:login_content.html.twig" %}
{% endblock fos_user_content %}
在RS/UserBundle/Ressources /視圖/安全/ login_content.html.twig:
<form action="{{ path("fos_user_security_check") }}" method="post">
<input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />
<label for="username">{{ 'security.login.username'|trans({}, 'FOSUserBundle') }}</label>
<input type="text" id="username" name="_username" value="{{ last_username }}" />
<label for="password">{{ 'security.login.password'|trans({}, 'FOSUserBundle') }}</label>
<input type="password" id="password" name="_password" />
<input type="checkbox" id="remember_me" name="_remember_me" value="on" />
<label for="remember_me">{{ 'security.login.remember_me'|trans({}, 'FOSUserBundle') }}</label>
<input type="submit" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans({}, 'FOSUserBundle') }}" />
</form>
並且在RS/UserBundle /控制器/我只有一個文件UserController.php:
<?php
namespace rs\UserBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
use FOS\UserBundle\Controller\SecurityController as SecurityController;
use rs\UserBundle\Entity\User;
/**
* Description of UserController
*
*/
class UserController extends SecurityController {
public function LoginBisAction()
{
$csrfToken = $this->container->get('form.csrf_provider')->generateCsrfToken('authenticate');
return $this->container->get('templating')->renderResponse('FOSUserBundle:Security:login_content.html.twig', array(
'last_username' => null,
'error' => null,
'csrf_token' => $csrfToken
));
}
}
有什麼不對,我是否需要創建一個路徑? 爲什麼我的主頁上找不到我的loginAction? 爲什麼我有這個錯誤:
在rSWelcomeBundle:Homepage:index.html.twig第15行呈現模板(「找不到路由爲」GET Security:LoginBisAction「」)的路由期間拋出異常。
非常感謝!
謝謝您awnser,但它不工作,我嘗試你說什麼,我都始終: 「異常被模板的渲染(期間拋出」無路由找到「GET用戶:LoginBisAction」「)在rsWelcomeBundle:主頁:index.html.twig第15行。「 另外,如果我嘗試{%渲染 'FOSUserBundle:安全:登錄' %} 或者:{%渲染 'FOSUserBundle:安全性:在LoginAction' %} 它不工作要麼... – user2178964 2013-04-05 05:57:38
你導入此以應用程序/配置/ routing.yml中 'fos_user_security: 資源:「@ FOSUserBundle /資源/配置/路由/ security.xml文件」'這似乎是路由問題 – tigris 2013-04-05 14:34:06
是的,我做到了;) 有人對我說:在我的rs/WelcomeBundle中使用我的主頁佈局: '{%render(controller('robStormUserBundle:User:loginBis'))%}' 我真的不明白爲什麼,我想如果我不想寫「渲染(控制器...」我需要在我的routing.yml中定義一些路線... 無論如何,現在我有這個錯誤: 拋出了一個異常在rsWelcomeBundle:主頁:index.html.twig第15行呈現模板(「無法找到模板」FOSUserBundle:Security:login_content.html.twig「。」)。 – user2178964 2013-04-05 15:29:42