Routing-Variablenregeln
Routing-Variablenregeln
Master-Routing-Regeln, Sie sollten über Grundkenntnisse in regulären Ausdrücken verfügen.
Die Standardeinstellung für die Variablenregel des Systems ist w , die nur Buchstaben, Zahlen, chinesische Zeichen und Unterstriche zulässt, nicht aber Sonderzeichen und andere Zeichen , die Variablenregeln definieren oder die Standardvariablenregeln anpassen müssen.
Sie können die Standardvariablenregeln in der Routing-Konfigurationsdatei anpassen, z. B. das Hinzufügen von Übereinstimmungen mit Unterstrichen:
'default_route_pattern' => '[\w\-]+',
Unterstützt die Angabe variabler Regeln beim Regelrouting, wodurch die Unfähigkeit, die Dynamik einzuschränken, ausgeglichen wird Variablen Spezifische Typprobleme und unterstützt globale Regeleinstellungen. Die Verwendung ist wie folgt:
Lokale Variablenregeln
Lokale Variablenregeln sind nur in der aktuellen Route gültig:
// 定义GET请求路由规则 并设置name变量规则 Route::get('new/:name', 'News/read') ->pattern(['name' => '[\w|\-]+']);
Keine Notwendigkeit Hinzufügen von ^ am Anfang oder Hinzufügen von $ am Ende. Modusmodifikatoren werden nicht unterstützt und das System fügt sie automatisch hinzu.
Globale Variablenregeln
Globale Variablenregeln festlegen, alle Routen sind gültig:
// 支持批量添加 Route::pattern([ 'name' => '\w+', 'id' => '\d+', ]);
Kombinierte Variablen
Wenn Ihre Routing-Regeln speziell sind, können Sie beim Definieren von Routen zusammengesetzte Variablen verwenden.
Zum Beispiel
Route::get('item-<name>-<id>', 'product/detail') ->pattern(['name' => '\w+', 'id' => '\d+']);
Der Vorteil der Kombination von Variablen besteht darin, dass es in Routing-Regeln keine festen Trennzeichen gibt. Sie können die erforderlichen Variablenregeln und Trennzeichen nach Belieben kombinieren. Die Routing-Regeln können wie folgt geändert werden:
Route::get('item<name><id>', 'product/detail') ->pattern(['name' => '[a-zA-Z]+', 'id' => '\d+']); Route::get('item@<name>-<id>', 'product/detail') ->pattern(['name' => '\w+', 'id' => '\d+']);
Wenn Sie bei der Verwendung kombinierter Variablen optionale Variablen verwenden müssen , können Sie die folgende Methode verwenden:
Route::get('item-<name><id?>', 'product/detail') ->pattern(['name' => '[a-zA-Z]+', 'id' => '\d+']);
Dynamisches Routing
Sie können die Variablen in den Routing-Regeln in das Routing übergeben Adresse können Sie ein dynamisches Routing implementieren, zum Beispiel:
// 定义动态路由 Route::get('hello/:name', 'index/:name/hello');
Der Wert der Namensvariablen wird als Routing-Adresse übergeben.
Variablen im dynamischen Routing unterstützen auch kombinierte Variablen und Assembler, zum Beispiel:
Route::get('item-<name>-<id>', 'product_:name/detail') ->pattern(['name' => '\w+', 'id' => '\d+']);