2017-09-01 2 views
0

J'essaie de faire correspondre une route qui a les mots-clés -episode ou -movie.slim 3 route regex

tel que/chopes porte-épisode 1 ou/pokemon-film-10

J'ai essayé de faire ceci:

$app->get('/{slug:episode|movie}', \App\Controller\EpisodeController::class . ':getBySlug'); 

Mais il ne correspond pas à.

Toute aide serait appréciée. Je suis complètement nouveau à ce btw.

Répondre

0

Votre expression régulière correspond uniquement aux chaînes exactes "épisode" et "film". Si vous voulez vérifier si l'URL contient les sous-chaînes, vous pouvez utiliser ceci:

$app->get('/{slug:.*episode.*|.*movie.*}', function ($request, $response, $args) { 
    echo $args['slug']; 
}); 

.* signifie « un nombre quelconque de caractère ». Bien sûr, il existe des modèles regexp plus avancés, mais cela fera ce que vous avez besoin.