Php 找不到GET/admin=>;的路由;进入安全区域
我无法访问我的登录页面,我不知道为什么 security.xml:Php 找不到GET/admin=>;的路由;进入安全区域,php,symfony,firewall,Php,Symfony,Firewall,我无法访问我的登录页面,我不知道为什么 security.xml: firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false login: pattern: ^/admin/login$ security: false secured_area:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/admin/login$
security: false
secured_area:
pattern: ^/admin
remember_me:
key: "%secret%"
lifetime: 604800 # 7 jours en secondes
path: /login
domain: ~ # Prend la valeur par défaut du domaine courant depuis $_SERVER
form_login:
check_path: _login_check
login_path: _admin_login
default_target_path: /admin
always_use_default_target_path: true
logout:
path: _admin_logout
target: /
#anonymous: ~
#http_basic:
# realm: "Secured Demo Area"
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
- { path: ^/admin, roles: [ROLE_ADMIN] }
- { path: ^/, roles: [ROLE_USER, ROLE_ADMIN] }
routing.yml:
_admin_login:
resource: "@TestBackBundle/Controller/SecureController.php"
type: annotation
secureController.php:
...
/**
* @Route("/admin")
*/
class SecureController extends Controller
{
/**
* @Route("/login", name="_admin_login")
* @Template()
*/
public function loginAction(Request $request)
{
if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
$error = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR);
} else {
$error = $request->getSession()->get(SecurityContext::AUTHENTICATION_ERROR);
}
return array(
'last_username' => $request->getSession()->get(SecurityContext::LAST_USERNAME),
'error' => $error,
);
}
/**
* @Route("/login_check", name="_login_check")
*/
public function securityCheckAction()
{
// The security layer will intercept this request
}
/**
* @Route("/logout", name="_admin_logout")
*/
public function logoutAction()
{
// The security layer will intercept this request
}
}
当我测试访问
我有一个错误:找不到“GET/admin”的路由
为什么我的登录页面上的路由不起作用?我猜是这样的路由:
你必须把它称为“指数化”,当你只想通过
说明:
访问该类的所有路由都将转到/admin
如果您想在/admin上显示内容,您必须创建“indexAction”
然后是所有其他操作,例如loginAction将/login作为路由
因此,您可以访问类“/admin”和登录操作“/login”,使其/admin/login/完全一致。此外,使用
php应用程序/控制台路由器:debug
显示SF2中的所有路由。