问题描述
朋友们,有一个我无法解决的问题。按照 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);
}
// ...
}
解决方法
这些是容器内的访问设置。这篇文章帮助了我: Folder permissions when running Symfony in Docker environment
Dockerfile:
&& usermod -u 1000 www-data