微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Symfony 5 getDoctrine->getRepository() 为 foreach() Doctrine CachedReader.php

如何解决Symfony 5 getDoctrine->getRepository() 为 foreach() Doctrine CachedReader.php

朋友们,有一个我无法解决的问题。按照 Symfony 5 文档执行会引发异常:为 foreach () 指定的参数无效。堆栈跟踪指向供应商/学说/注释/lib/Doctrine/Common/Annotations/CachedReader.PHP: 107。本质上它不允许我访问控制器中的存储库。重置整个 Symfony 缓存有助于一个请求,然后再次重复异常。尝试使用缓存访问目录访问,没有帮助。我会很高兴这个决定。

实体:

/**
 * @ORM\Entity(repositoryClass=AuthorRepository::class)
 */
class Author
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     * @ORM\Column(type="integer")
     */
    private $id;

    // ...
}

存储库:

class AuthorRepository extends ServiceEntityRepository
{
    public function __construct(ManagerRegistry $registry)
    {
        parent::__construct($registry,Author::class);
    }
}

控制器:

class AuthorController extends AbstractController
{
    /**
     * @Route("/author/create",name="author-create")
     * Method ({"GET","POST"})
     */
    public function actionCreate(Request $request,ValidatorInterface $validator): Response
    {
        // throw ErrorException !!!
        $repository = $this->getDoctrine()->getRepository(Author::class);
    }
  
    // ...
 }

method show Exception

Stack Trace

where the exception is throw

解决方法

这些是容器内的访问设置。这篇文章帮助了我: Folder permissions when running Symfony in Docker environment

Dockerfile:

&& usermod -u 1000 www-data

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。