我是Symfony2的新手,后来是FOSUserBundle.我理解捆绑包是什么以及使用它的内容但是我对如何使用捆绑包与我已经存在的视图和控制器相关联有疑问.
我已经设置了捆绑包并让它工作但我对下一个任务感到困惑.
设置:在FOSUserBundle的登录页面上,我希望将"管理员用户"路由到某个页面,将"普通用户"路由到另一个页面.我在哪里放置这个逻辑?我目前在我的捆绑包的DefaultController中有它但得到页面:localhost isn't working...localhost redirected you too many times...我清除了缓存但仍然是相同的结果.
DefaultController:
namespace Pas\ShopTestBundle\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
class DefaultController extends Controller
{
/**
* @Route("/")
* @Template()
*/
public function indexAction(Request $request) {
if ('admin_login' === $request->get('_route')) {
return $this->redirectToRoute('product'); //just test to product
} else {
return $this->redirectToRoute('login'); //just test to login
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我的ULTIMATE目标是,一旦用户登录,就会在他们发送到的页面上显示他们的用户名.我该如何编码呢?它去哪儿了?
我非常感谢你的帮助,谢谢大家.
Symfony 2.7:FOSUserBundle 2.0
编辑:security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
role_hierarchy:
ROLE_ADMIN: ROLE_ADMIN
ROLE_NORMAL: ROLE_NORMAL
# http://symfony.com/doc/current/book/security.html#where-do-users-come-from-user-providers
providers: …Run Code Online (Sandbox Code Playgroud)