首先,对不起,如果我的英语不太好。 我提出了许多问题,比如我所拥有的问题,但任何解决方案都有效。 问题是我正在开发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时,当我被要求生成存储库时,我说“不”。可能这是问题所在。现在有什么建议吗? 再次感谢
答案 0 :(得分:0)
尝试在用户实体文件中添加此评论:
/**
*
* @ORM\Entity(repositoryClass="YourProject\UserBundle\Entity\UserRepository")
*/
class User
{
...
}
答案 1 :(得分:0)
发现它!!
这是一个愚蠢的错误。我已经用
开始了PHP存储库文件<?
...
并且必须
<?php
...
很抱歉!