J'ai ce code ci-dessous:
/**
* Lists all User entities.
*
* @Route("/{cid}",defaults={"cid" = null},name="user")
* @Template()
*/
public function indexAction($cid=null)
{}
Maintenant, si je tape site/user/1
alors ça marche, mais si je tape site/user/
ça dit:
No route found
Comment puis-je faire en sorte que les deux itinéraires fonctionnent?
Essayez d'aller à site/user
(remarquez pas de barre oblique inverse à la fin).
En général, cela devrait fonctionner, j'ai une configuration relativement similaire qui fonctionne.
Mais si tout le reste échoue, vous pouvez toujours définir plusieurs itinéraires pour la même action, c'est-à-dire.
/**
* Lists all User entities.
*
* @Route("/", name="user_no_cid")
* @Route("/{cid}", name="user")
* @Template()
*/
public function indexAction($cid=null)
{
Utilisez un fichier yml pour votre configuration de routage et ajoutez une valeur par défaut pour id dans vos paramètres de routage comme ceci:
user:
pattern: /site/user/{id}
defaults: { _controller: YourBundle:Default:index, id: 1 }
Voir la documentation ici
Vous pouvez également le faire avec un paramètre GET, par ex.
/**
* @param Request $request
*
* @return Response
*/
public function displayDetailAction(Request $request) : Response
{
if ($courseId = $request->query->get('courseId')) {