php 获取controller,php – 在Symfony 3 Controller中获取请求和会话

用户在尝试创建一个仅限特定用户登录的系统时遇到了问题。系统使用了内存提供者,并在`security.yml`中配置了用户。当访问 `/admin/login` 时,出现了服务未找到的错误。错误信息提示找不到 'request' 服务。问题可能出在路由、控制器或安全配置上。
摘要由CSDN通过智能技术生成

我有一个大问题,请帮助我.所以我想创建一个只使用以下用户的登录系统:

providers:

in_memory:

memory:

users:

所以我的全局路由:/app/config/routing.yml:

app_admin:

resource: "@AppAdminBundle/Resources/config/routing.yml"

prefix: /admin

我在AdminBundle中的路由:

app_admin_homepage:

path: /

defaults: { _controller: AppAdminBundle:Login:index }

login:

path: /login

defaults: { _controller: AppAdminBundle:Login:login }

login_check:

path: /login_check

我的LoginController:

namespace App\AdminBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

use Symfony\Component\Security\Core\SecurityContext;

class LoginController extends Controller

{

public function indexAction()

{

return $this->render('AppAdminBundle:Member:login.html.twig');

}

public function loginAction()

{

$request = $this->get('request');

$session = $this->get('session');

if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {

$error = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR);

} else {

$error = $session->get(SecurityContext::AUTHENTICATION_ERROR);

$session->remove(SecurityContext::AUTHENTICATION_ERROR);

}

return $this->render('AppAdminBundle:Member:login.html.twig', array(

'last_username' => $session->get(SecurityContext::LAST_USERNAME),

'error' => $error,

));

}

}

我的login.html.twig:

而我的security.yml:

security:

role_hierarchy:

ROLE_ADMIN: ROLE_USER

ROLE_FMTI: ROLE_FMTI

ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

access_control:

- { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY }

- { path: ^/admin, role: IS_AUTHENTICATED_ANONYMOUSLY }

firewalls:

dev:

pattern: ^/(_(profiler|wdt)|css|images|js)/

security: false

secured_area:

pattern: ^/admin

anonymous: ~

form_login:

login_path: /admin/login

check_path: /admin/login_check

access_control:

- { path: ^/admin, roles: ROLE_ADMIN }

providers:

in_memory:

memory:

users:

admin: { password: 111111, roles: 'ROLE_FMTI' }

encoders:

Symfony\Component\Security\Core\User\User: plaintext

当我尝试访问:/ admin / login

我收到此错误:您已请求不存在的服务“请求”.你的意思是其中之一:“router.request_context”,“request_stack”,“monolog.logger.request”,“data_collector.request”?

请你帮助我好吗 ?提前致谢,对不起我的英语

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值