我有一个名为链接包的包。现在我已经把所有的混合东西放在那里,用在所有的包中。如何访问存储库,如果没有该名称的实体Doctrine2 Symfony2
但我没有任何实体称为链接。
我想创建LinkedRepository,这样我就可以拥有我所有的常用功能。但是,我将如何在其他包中获取该存储库。我的意思是如何调用这个
$repository = $em->getRepository('LinkedBundle:"*What should I write here*"');
我有一个名为链接包的包。现在我已经把所有的混合东西放在那里,用在所有的包中。如何访问存储库,如果没有该名称的实体Doctrine2 Symfony2
但我没有任何实体称为链接。
我想创建LinkedRepository,这样我就可以拥有我所有的常用功能。但是,我将如何在其他包中获取该存储库。我的意思是如何调用这个
$repository = $em->getRepository('LinkedBundle:"*What should I write here*"');
您不能拥有单独的存储库类。信息库类链接到一个实体,所以你不能有一个“独立的”信息库,但我可以看到两个选项:
@ORM\Entity(repositoryClass="Acme\LinkedBundle\Repository\LinkedRepository")
,假设你的Bundle里的Repository文件夹中有你的Repository类,并用Acme替换你的公司名称。我想第一个比较容易。
我认为这是不可能的,因为你打算这样做。但我会建议使用服务容器而不是存储库。在此服务容器中,您可以使用不同的存储库,您需要使用这些存储库来执行这些全局任务。服务容器也可以在每个控制器等访问。
这是Documentatino它:http://symfony.com/doc/current/book/service_container.html 我不认为你需要整个注射部分。只要定义一个服务:
services:
linked_service:
class: Acme\LinkedBundleBundle\Service\LinkedService
,然后通过
public function indexAction()
{
$service = $this->get('linked_service');
}
希望这个作品获得控制器的服务。