2014-03-14 2 views
0

Во-первых, извините, если мой английский это не очень хорошо. Я прочитал много вопросов, как у меня, но любое решение работает. Вопрос в том, что я разрабатываю приложение в 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, стереть кеш, и ничего из этого не получилось.

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

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

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

+0

И вы уверены, что пользователь, ваш PHP-процесс выполнен, имеет доступ для чтения к этому файлу? – SimonSimCity

+0

Привет, Саймон, я использую wampserver, я проверил все разрешения и, похоже, все в порядке. –

+0

Также появилась эта ошибка сегодня во внешней библиотеке.Получил это решение, снова удалив каталог-поставщик и извлекая зависимости ... – SimonSimCity

ответ

0

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

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

или что-то вроде этого: custom repository class in symfony2

+0

Привет, Dezigo, я не публиковал объект User, но репозиторий ORM Entity вы были в коде. благодаря –

0

Нашел !!

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

<? 
    ... 

и должен быть

<?php 
... 

К сожалению на всех!

Смежные вопросы