找不到存储库类



我找不到错误。

我正在使用Symfony 2.4.2并尝试创建自定义存储库。

的权利,该文件不存在于"实体"文件夹中,但是当我将存储库移动到文件夹"实体"时,它不起作用。

我收到以下错误:

Class 'MbsNiederlassungBundleEntityNiederlassungs' does not exist

这是我的控制器中的用途:

namespace MbsAllgemeinBundleController;
use SymfonyBundleFrameworkBundleControllerController;
use SymfonyBundleSwiftmailerBundle;
use MbsNiederlassungBundleEntityGebietStadt;
use MbsNiederlassungBundleEntityNiederlassung;
use MbsNiederlassungBundleRepositoryNiederlassungsRepository;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentDependencyInjectionContainerInterface;
use SymfonyComponentHttpKernelExceptionNotFoundHttpException;

在我的函数中,我尝试以下代码:

if (in_array($this->get( 'kernel' )->getEnvironment(), array('test', 'dev'))) {
    $em = $this->getDoctrine()->getManager();
    $responsibleDepartmentEmail = $em->getRepository( 'MbsNiederlassungBundle:Niederlassungs' )
        ->findResponsibleDepartment( $searchInput );
    var_dump($responsibleDepartmentEmail);die();
}

存储库文件位于文件夹 Mbs/NiederlassungBundle/Repository 下

namespace MbsNiederlassungBundleRepository;
use DoctrineORMEntityRepository;
class NiederlassungsRepository extends EntityRepository
{
public function findResponsibleDepartment($suche)
{
    $arrTerm = explode(" ", $suche);
    $query = $this->_em->createQueryBuilder()
        ->select('nl.email')
        ->from('MbsNiederlassungBundle:GebietStadt', 'gs')
        ->innerJoin('MbsNiederlassungBundle:Niederlassung', 'nl', 'WITH', 'nl.id = gs.idNiederlassung');

    for ($i = 0; $i < count($arrTerm); $i++) {
        $ph = 'plz'.$i;
        $query->orWhere('gs.plz LIKE :' . $ph );
        $query->setParameter($ph, $arrTerm[$i]);
    }
    $result = $query->getQuery()->getResult();
    if (count($result) > 0) {
        $email = $result[0]["email"];
        return $email;
    } else {
        return false;
    }
}
}

我没有找到,为什么我不能调用这个存储库。

确保已

@ORMEntity(repositoryClass="...")注释添加到Niederlassung实体。

use DoctrineORMMapping as ORM;
/**
 * @ORMEntity(repositoryClass="path_to_your_repository")
 * ...
 */
class Niederlassung
{
    // ...

类 Mbs/NiederlassungBundle/Repository 的命名空间是错误的。使用命名空间 Mbs\AllgemeinBundle\Controller。Symfony找不到该类,因为处于不同的命名空间中

您的实体必须是:

  namespace MbsNiederlassungBundleEntity; 
    use DoctrineORMMapping as ORM; 
    /** * Niederlassung 
    * 
    * @ORMTable(name="niederlassung") 
    * @ORMEntity(repositoryClass="MbsNiederlassungBundleRepositoryNiederlassungs‌​Repository")
    */
   class Niederlassung{}

将类存储库创建到实体文件夹的最佳做法

相关内容

  • 没有找到相关文章