我是Symfony 6的初学者,我被阻止了,因为我有一个错误消息:使用Intelephense的“未定义方法getDoctrine”
下面是我的代码:
#[Route('/recettes', name: 'app_recettes')]
public function index(int $id): Response
{
$em = $this->getDoctrine()->getManager();
$recette = $em->getRepository(Recettes::class)->findBy(['id' => $id]);
return $this->render('recettes/index.html.twig', [
'RecettesController' => 'RecettesController',
]);
}
2条答案
按热度按时间5m1hhzi41#
您的控制器应该从
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
扩展到AbstractController
不应在symfony 6中使用
getDoctrine()->getManager()
。如果查看AbstractController
中的方法,您可以看到:您应该在方法或构造函数中自动连接实体管理器,然后直接使用它。
如果只想获取一些数据,也可以直接自动连接RecettesRepository,而不是实体管理器。
我猜您希望使用特定资源的id来显示该资源。您可能希望在您的路径中添加一些内容
/{id}
:46scxncf2#
迪伦的React真的很好!
如果你想fecth一个特定的recette(blog de cuisine?),你可以自动连接'recette'作为一个参数:
为此,请不要忘记安装和导入:
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Entity;