Ich versuche, einen Platzhalter von URL zu erfassen und dann zuerst an einen Filter dann an den Controller zu leiten. Ich bin nicht sicher, wie man die Frage genau plant, aber hier ist, was ich bisher versucht habe.Laravel, Routing Wildcards zu filtern und dann Controller
Route::get('test/(:any?)', array('as' => 'testroute', 'uses' => '[email protected]', 'before' => "test_filter:$1"));
Route::filter('test_filter', function($id = NULL)
{
if($id)
echo "This id is " . $id; // Prints "This id is $1"
});
und
Route::get('test/(:any?)', array('as' => 'testroute', function($id = NULL)
{
if($id)
echo "this id is " . $id; // Does not do anything
}, 'uses' => '[email protected]'));
Grundsätzlich möchte ich überprüfen, ob es eine ID an die URL und setzen ein Cookie angehängt ist, wenn es einen gibt. Aber unabhängig von dem Fall möchte ich, dass diese Route von einem Controller behandelt wird, egal ob eine ID angehängt ist oder nicht.
Ich muss das Gleiche mit so vielen Routen tun, also würde ich eher etwas wie einen Filter bevorzugen, anstatt die Codes des Controllers zu modifizieren.
Ich weiß, dass ich das Wildcard-Element direkt an eine Schließung übergeben kann, oder ich kann dies als einen Parameter an jeden Controller füttern, aber in diesem Fall muss ich die Controller-Codes ändern, die ich nicht an der Moment.
Kann ich es durch Filter tun? oder auf eine andere Art und Weise, in der ich die Controller-Codes nicht ändern muss?
@Gufran Ich habe meinen Code aktualisiert – afarazit
Nein, die anonyme Funktion macht nichts. Es wendet nur den Filter an und leitet dann die Route zum Controller weiter. Außerdem muss ich den Wert des Platzhalters innerhalb des Filters oder des anonymen Verschlusses ergreifen. – Gufran
@Gufran aktualisiert den Code erneut, übergibt das Match an die Anon-Funktion, sehen, ob das funktioniert – afarazit