ошибка 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();
    }
}

У меня такая же проблема при попытке использовать класс формы в том же комплекте, но я не вижу ошибок в имени имени или классе.

Структура проекта такова:

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

Я схожу с ума, пытаясь решить проблему и читая много форумов и примеров. Я пытался отключить APC, перезапустить Apache, стереть кеш, и ничего из этого не сработало.

Большое спасибо!! Карлос

PD: Я не уверен, почему появляется фрагмент кода в верхней части страницы с ошибкой и почему он начинается в строке "getEntityMAnager();..."... Почему не отображается текстовый код перед ним?. Изображение: http://es.tinypic.com?ref=r0s8k5

ВАЖНО: когда я сгенерировал сущность USer с помощью консоли, я сказал «нет», когда меня попросили создать репозиторий. Может в этом проблема. Любое предложение сейчас? Еще раз спасибо


person RlT-Carlos    schedule 14.03.2014    source источник
comment
А вы уверены, что пользователь, под которым выполняется ваш PHP-процесс, имеет доступ на чтение к этому файлу?   -  person SimonSimCity    schedule 15.03.2014
comment
Привет, Саймон, я использую wampserver, я проверил все разрешения и, похоже, все в порядке.   -  person RlT-Carlos    schedule 15.03.2014
comment
Также была эта ошибка сегодня во внешней библиотеке. Решил проблему, удалив каталог-поставщика и снова получив зависимости...   -  person SimonSimCity    schedule 18.03.2014


Ответы (2)


Попробуйте добавить этот комментарий в свой файл сущности пользователя:

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

или что-то вроде этого: класс пользовательского репозитория в symfony2

person Dezigo    schedule 14.03.2014
comment
Привет, Дезиго, я не публиковал сущность пользователя, но репозиторий сущности ORM был в коде. Спасибо - person RlT-Carlos; 15.03.2014

Нашел!!

Это была глупая ошибка. Я начал файл репозитория PHP с

<?
    ...

и должно быть

<?php
...

Прости вообще!

person RlT-Carlos    schedule 17.03.2014