i have this code and i can't find a solution. Cannot autowire argument $recipe of "App\Controller\RecipeController::edit()": it references class "App\Entity\Recipe" but no such service exists.
this is the code :
<?php
namespace App\Controller;
use App\Entity\Recipe;
use App\Form\RecipeType;
use App\Repository\RecipeRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Doctrine\ORM\EntityManagerInterface;
class RecipeController extends AbstractController
{
#[Route('/recettes', name: 'recipe.index')]
public function index(Request $request , RecipeRepository $repository, EntityManagerInterface $em ): Response
{
$recipes = $repository->findAll();
//$recipes = $repository->findWithDurationLowerThan(5);
// pour cree une recette directement dans la base de donnee
$recipe = new Recipe();
$recipe->setTitle('Barbe à Papa')
->setSlug('barbe-papa')
->setContent('Il est indispensable pour faire de la barbe à papa de disposer dune machine speciale, qui peut se louer a la journée chez les spécialistes de locations de matériels divers bien connus, ou en faisant une recherche internet.')
->setDuration(5)
->setCreatedAt(new \DateTimeImmutable())
->setUpdatedAt(new \DateTimeImmutable());
$em->persist($recipe);
$em->flush();
//si je veux supprimer une recette dans la base de donnee alors : $em->remove($recipes[0]) puis $em->flush()
return $this->render('recipe/index.html.twig',[
'recipes' => $recipes
]);
}
#[Route('/recettes/{slug}-{id}', name:'recipe.show' , requirements:['id'=>'\d+' , 'slug'=> '[a-z0-9-]+'])]
public function show(Request $request , string $slug , int $id , RecipeRepository $repository): Response
{
$recipe = $repository->find($id); // je peux aussi chercher par le slug avec findOneBy(['slug' => $slug])
if ($recipe->getSlug() != $slug) {
return $this->redirectToRoute('recipe.show', ['slug'=> $recipe->getSlug(), 'id' => $recipe->getId()]);
}
return $this->render('recipe/show.html.twig', [
'recipe' =>$recipe
]);
}
#[Route('/recettes/{id}/edit' , name: 'recipe.edit') ]
public function edit(Recipe $recipe)
{
$form = $this-> createForm(RecipeType::class, $recipe);
return $this->render( 'recipe/edit.html.twig' , [
'recipe'=> $recipe,
'form' => $form
]);
}
}
the template :
type {% extends 'base.html.twig' %}
{% block title "Recette : " ~ recipe.title %}
{% block body %}
<h1>{{recipe.title}}</h1>
{{ form(form) }}
{% endblock %}
i remove symfony\ux-turbo in composer.json but nothing change.nothing in stackoverflow. excuse me because i'm really a begenner
Please ensure that your entities are not autowired (excluded) in your configuration: