三天前我开始学习Symfony,但遇到了缓存或其他问题。
第一个我有RegisterController
:
public function index(Request $request, UserPasswordEncoderInterface $encoder)
{
$user = new User();
$form = $this->createForm(UserType::class, $user);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()){
$user = $form->getData();
$user->setPassword($encoder->encodePassword($user, $user->getPassword()));
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($user);
$entityManager->flush();
}
return $this->render('register/index.html.twig', [
'form' => $form->createView(),
]);
}
工作正常。但是当我在
之前写的时候$user = new User();
此行$this->denyAccessUnlessGranted("ROLE_ADMIN");
-我可以访问“拒绝访问”,因为我还有其他角色。
但是当我删除此行代码$this->denyAccessUnlessGranted("ROLE_ADMIN");
并刷新页面时,我看到了屏幕:
此页面无效 symfony.local没有发送任何数据。 ERR_EMPTY_RESPONSE
,我再也无法访问此页面。我必须清除缓存:
php bin/console cache:clear
或重新启动apache。
您能告诉我怎么回事以及如何解决吗?
答案 0 :(得分:0)
我在使用PHP版本7.4.0和php fpm时遇到问题。我确实将php更新到7.4.3,现在可以了。感谢您的帮助。
答案 1 :(得分:-1)
可以为不同的environments配置Symfony,并且这些环境可以更改Symfony的行为。如果您在生产环境中运行,Symfony将执行大量缓存以提高向访客提供页面的速度。如果您处于DEV模式,则每次运行它都会重新加载大多数代码更改。
但是,Web服务器/ PHP也可以缓存文件。如果您在Symfony中处于DEV模式,并且仍然有此问题,请检查php.ini文件中的缓存设置。