我有一个叫做 Linked Bundle 的包。现在我已经把所有混合的东西都放在那里了,这些东西在所有捆绑包中都使用了。
但我没有任何名为 Linked 的实体。
我想创建 LinkedRepository 以便我可以在那里拥有所有常用功能。但是我将如何在其他捆绑包中获取该存储库。我的意思是如何称呼这个
$repository = $em->getRepository('LinkedBundle:"*What should I write here*"');
我有一个叫做 Linked Bundle 的包。现在我已经把所有混合的东西都放在那里了,这些东西在所有捆绑包中都使用了。
但我没有任何名为 Linked 的实体。
我想创建 LinkedRepository 以便我可以在那里拥有所有常用功能。但是我将如何在其他捆绑包中获取该存储库。我的意思是如何称呼这个
$repository = $em->getRepository('LinkedBundle:"*What should I write here*"');
我认为这是不可能的,因为你打算这样做。但我建议使用服务容器而不是存储库。在此服务容器中,您可以使用不同的存储库,这些存储库需要用于这些全局任务。服务容器也可以在每个控制器等中访问。
这是它的 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');
}
希望这有效。
您不能拥有单独的存储库类。存储库类链接到实体,因此您不能拥有“独立”存储库,但我可以看到两个选项:
@ORM\Entity(repositoryClass="Acme\LinkedBundle\Repository\LinkedRepository")
假设您的 Repository 类在您的 Bundle 内的 Repository 文件夹中,并将 Acme 替换为您的公司名。我想第一个更容易。