2017-09-01 3 views
0

Ich versuche, eine Route mit den Schlüsselwörtern -episode oder -movie zu entsprechen.Slim 3 Regex Route

wie/steins-Gate-Folge-1 oder/pokemon-Film-10

Ich habe versucht, dies zu tun:

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

Aber es ist passend nicht.

Jede Hilfe wäre willkommen. Ich bin völlig neu in diesem BTW.

Antwort

0

Ihr regulärer Ausdruck stimmt nur mit den genauen Zeichenketten "Episode" und "Film" überein. Wenn Sie , wenn die URL überprüfen möchten die Substrings enthält, können Sie diese verwenden:

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

.* bedeutet „eine beliebige Anzahl von beliebigen Zeichen“. Sicher gibt es mehr erweiterte Regexp-Muster, aber das wird tun, was Sie brauchen.