我在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);
}
}
当我在浏览器中访问它时,输出为: -
我之前使用的是zend框架,但在symfony2中是新的。任何帮助将不胜感激。
答案 0 :(得分:1)
我发现了这个问题,这真是一个愚蠢的错误。
要获取存储库,我们必须使用类名称的Bundle名称,如此
$user = $this->getDoctrine()->getRepository('BitcoinMyBundle:User');