Doctrine中的自定义存储库

时间:2018-03-09 11:13:08

标签: symfony doctrine-orm repository

我有一个控制器:

public function getAllItemsAction()
    {
        $content = $this->getDoctrine()->getRepository(Item::class)->findAll();//<-(1)--THIS TO REPOSITORY
        if ($content === NULL) {

            return new View("Items not found", Response::HTTP_NOT_FOUND);
        }

        return new View($content,Response::HTTP_OK);
    }

如何将此行(1)移动到存储库,然后从控制器的存储库中使用此方法?

1 个答案:

答案 0 :(得分:0)

您突出显示的行实际上与Doctrine无关:​​您从Dependency Injection容器获取服务,然后在其上调用方法。

令您烦恼的是您正在使用别名(getDoctrine())和来自Doctrine的注册表,这是为了方便。 但实际上您也可以将存储库声明为服务并执行此操作:$this->get('item_repository) - &gt; findAll()`。