symfony 2.3错误:自动加载器查找文件但不是类

时间:2014-03-14 20:00:42

标签: symfony symfony-2.3

首先,对不起,如果我的英语不太好。 我提出了许多问题,比如我所拥有的问题,但任何解决方案都有效。 问题是我正在开发Symfony 2.3中的项目,是的,我是初学者使用它...

我创建了一个'Userbundle',我想显示用户的信息配置文件。

当我访问正确的URL时,我有一个着名的消息错误:

“自动加载器期望类”Mylife \ UserBundle \ Entity \ UserRepository“将在文件”D:\ www \ Symfony / src \ Mylife \ UserBundle \ Entity \ UserRepository.php“中定义。文件被找到但是班级不在其中,类名或命名空间可能有拼写错误。“

这是我的默认控制器代码:

namespace Mylife\UserBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Mylife\UserBundle\Entity\User;
use Mylife\UserBundle\Form\Frontend\RegisterType;

class DefaultController extends Controller
{

public function profileAction(){
    $user_id=1;

    $em=$this->getDoctrine()->getEntityManager();
    $profile=$em->getRepository('UserBundle:User')
                ->findProfile($user_id);

    return $this->render('UserBundle:Default:profile.html.twig', array( 'profile' => $profile));

}

我的UserRepository.php代码:

// src/Mylife/UserBundle/Entity/UserRepository.php

namespace Mylife\UserBundle\Entity;
use Doctrine\ORM\EntityRepository;

class UserRepository extends EntityRepository
{
    public function findProfile($user)
    {
    $em = $this->getEntityManager();

    $consult= $em->createQuery('
                               SELECT u, nk, n
                               FROM UserBundle:User u
                               WHERE u.user= :id');

    $consult->setParameter('id', $user);

    return $consult->getResult();
    }
}

尝试在同一个包中使用表单类时遇到同样的问题,但我没有在namesapce或类名中看到任何错误。

项目结构是:

-src
   -Mylife
      -UserBundle
         ....
         -Entity
            ...
            -User.php
            -UserRepository.php

我疯狂地试图解决问题并阅读很多论坛和例子。 我试图让APC无效,重新启动Apache,擦除缓存,而这一切都没有用。

非常感谢!! 卡洛斯

PD:我不确定为什么在错误页面顶部出现一段代码以及为什么它从“getEntityMAnager(); ...”行开始...为什么不在它之前显示文本代码?。图像:http://es.tinypic.com?ref=r0s8k5

重要提示:当我通过控制台生成实体USer时,当我被要求生成存储库时,我说“不”。可能这是问题所在。现在有什么建议吗? 再次感谢

2 个答案:

答案 0 :(得分:0)

尝试在用户实体文件中添加此评论:

/**
 *
 * @ORM\Entity(repositoryClass="YourProject\UserBundle\Entity\UserRepository")
 */
class User
{
...
}

或类似的东西: custom repository class in symfony2

答案 1 :(得分:0)

发现它!!

这是一个愚蠢的错误。我已经用

开始了PHP存储库文件
<?
    ...

并且必须

<?php
...

很抱歉!