gpt4 book ai didi

symfony4 - Symfony 4. ServiceEntityRepository 与 EntityRepository

转载 作者:行者123 更新时间:2023-12-03 18:31:42 25 4
gpt4 key购买 nike

为什么我需要在我的存储库中扩展 ServiceEntityRepository?
在 Symfony 3.4 中,我总是扩展 EntityRepository。使用 ServiceEntityRepository 我在这里描述了一个奇怪的问题 Symfony 4. InheritanceType("JOINED") and ParamConverter. Strange phenomenon

最佳答案

这是我的 2 美分:你不需要,但你应该。为什么 ?因为它允许您使用 Autowiring (这是 SF4 中的一大改进,也是开发的乐趣)

class ProductRepository extends ServiceEntityRepository
{
public function __construct(RegistryInterface $registry)
{
parent::__construct($registry, Product::class);
}
}

然后你可以像这样到处自动编写:

// From product controller
public function show(?int $id, ProductRepository $repository)
{
$product = $repository->find($id);
if (!$product) {
throw $this->createNotFoundException(
'No product found for id '.$id
);
}

return new Response('Check out this great product: '.$product->getName());
}

如果你不想,不用担心,只需使用旧的方式:

// From product controller
public function show(?int $id, EntityManagerInterface $manager)
{
$product = $manager->getRepository(Product::class)->find($id);
// or this one but only in a controller which extend AbstractController
$product = $this->getDoctrine()->getRepository(Product::class)->find($id);
if (!$product) {
throw $this->createNotFoundException(
'No product found for id '.$id
);
}

return new Response('Check out this great product: '.$product->getName());
}

关于symfony4 - Symfony 4. ServiceEntityRepository 与 EntityRepository,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55179959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com