加载实体Symfony 2时类不存在

时间:2014-03-06 13:41:30

标签: php symfony doctrine-orm

我在bundle中创建了一个bundle和Entity。但是当我尝试使用实体管理器在控制器中获取实体或存储库时,它会给出一个不存在类的错误。

我尝试使用 php app / console doctrine进行调试:mapping:info

它提示每件事情都是正确的。输出

Found 4 mapped entities:
[OK]   Bitcoin\MyBundle\Entity\ProductCategory
[OK]   Bitcoin\MyBundle\Entity\AdminUser
[OK]   Bitcoin\MyBundle\Entity\Product
[OK]   Bitcoin\MyBundle\Entity\User

我的控制器代码如下

<?php

namespace Bitcoin\MyBundle\Controller;

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\SecurityContext;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use Bitcoin\AdminBundle\Form\Login;
use Bitcoin\AdminBundle\Form\LoginValidate;

class LoginController extends Controller {

    public function loginAction(Request $request) {
        $user = $this->getDoctrine()->getRepository('User');
        echo '<pre>';
        prin_r(get_class_methods(get_class($user))); 
        die;


    $pageData = array(
        'name' => 'Login',
    );
    return $this->render('BitcoinAdminBundle:Login:login.html.twig', $pageData);
}

}

当我在浏览器中访问它时,输出为: - enter image description here

我之前使用的是zend框架,但在symfony2中是新的。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

我发现了这个问题,这真是一个愚蠢的错误。

要获取存储库,我们必须使用类名称的Bundle名称,如此

$user = $this->getDoctrine()->getRepository('BitcoinMyBundle:User');