In meiner Laravel routes/web.php
Datei habe ich die folgenden zwei Routen definiert:Laravel Route passend nicht Muster
Route::get('transaction/{id}', ['uses' => '[email protected]'])->name('transaction.show');
Route::get('transaction/{txId}', ['uses' => '[email protected]'])->name('transaction.showByTxId');
In meinem RouteServicesProvider
I definiert haben die beiden folgenden Muster:
Route::pattern('id', '[0-9]+');
Route::pattern('txId', '/^(TX(1[0-9]\d|[2-9]\d\d)-(1[0-9]\d\d\d\d|[2-9]\d\d\d\d\d))$/');
Jedes Mal, wenn ich gehe zu transaction/<id>
das Routing funktioniert ordnungsgemäß, solange id
eine Ganzzahl ist. Wenn ich jedoch beispielsweise zu transaction/TX874-152268
gehe, stimmt es mit keiner Route überein, und ich erhalte den Fehler NotFoundHttpException in RouteCollection.php
.
Ich habe die Regex TxID validiert und es gibt eine vollständige Übereinstimmung: https://regex101.com/r/kDZR4L/1
Meine Frage: wie kommt es nur mein id
Muster während mein txId
Muster korrekt funktioniert, ist es nicht?
@ WiktorStribiżew danke, ich habe versucht, aber kein Glück. Es sieht viel schöner aus :-) – pbond