Php 自动加载程序应在文件中定义类

Php 自动加载程序应在文件中定义类,php,symfony,classloader,Php,Symfony,Classloader,我知道这个问题已经被问过很多次了,但我在网上找不到与我的问题相对应的解决方案。 因此,我创建了一个UserBundle,当我尝试访问登录页面时,出现以下错误: 自动加载程序需要在文件“C:\xampp\htdocs\lab/src\ET\Bundle\UserBundle\Controller\SecurityController.php”中定义类“ET\Bundle\UserBundle\Controller\SecurityController”。找到了文件,但类不在其中,类名或命名空间可能

我知道这个问题已经被问过很多次了,但我在网上找不到与我的问题相对应的解决方案。 因此,我创建了一个UserBundle,当我尝试访问登录页面时,出现以下错误:

自动加载程序需要在文件“C:\xampp\htdocs\lab/src\ET\Bundle\UserBundle\Controller\SecurityController.php”中定义类“ET\Bundle\UserBundle\Controller\SecurityController”。找到了文件,但类不在其中,类名或命名空间可能有输入错误

我已经检查了我的文件,如果我的名称空间或类名是好的,但我找不到错误

我的安全控制器:

<?php

namespace ET\UserBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\SecurityContext;

class SecurityController extends Controller{
public function loginAction(Request $request){

    // Si le visiteur est déjà identifié, on le redirige vers l'accueil
    if ($this->get('security.context')->isGranted(IS_AUTHENTIFICATED_REMEMBERED)){
        return $this->redirect($this->generateUrl('et_home'));
    }

    $session = $request->getSession();

    // On vérifie qu'il n'y a pas d'erreurs lors d'un précédente soumission de formulaire
    if($request->attributes->has(SecurityContext::AUTHENTIFICATION_ERROR)){
        $error = $request->attributes->get(SecurityContext::AUTHENTIFICATION_ERROR);
    }else{
        $error = $session->get(SecurityContext::AUTHENTIFICATION_ERROR);
        $session->remove(SecurityContext::AUTHENTIFICATION_ERROR);
    }

    return $this->render('ETUserBundle:Security:login.html.twig', array(
        'last_username'  => $session->get(SecurityContext::LAST_USERNAME),
        'error'          => $error,
    ));
}
}
我的路由器:

login:
     pattern:   /login
     defaults:  { _controller: ETUserBundle:Security:login }

 login_check:
     pattern:  /login_check

logout:
   pattern:   /logout
如果有人对我有什么想法,请告诉我。提前谢谢。
我已经在Symfony 2.6和2.7上尝试了这一点,并进行了新的安装。

替换
namespace ET\UserBundle\Controller
by
namespace ET\Bundle\UserBundle\Controller\SecurityController

SecurityController.php的路径是什么?C:\xampp\htdocs\lab\src\ET\Bundle\UserBundle\Controller\n您的命名空间应该是
ET\Bundle\UserBundle\Controller
,Bundle在ETOk之后,它可以工作,谢谢:)我不明白他们为什么要添加Bundle文件夹,但好的^^你必须正确地遵循文档:)实际上,用名称空间ET\Bundle\UserBundle\Controller替换它。答案在错误消息中。建议解决的路径不符合您的定义。将目录结构与命名空间进行比较,它们通常会匹配(除非映射了命名空间)。
login:
     pattern:   /login
     defaults:  { _controller: ETUserBundle:Security:login }

 login_check:
     pattern:  /login_check

logout:
   pattern:   /logout