In Laravel besteht die Aufgabe der Routenbenennung darin, Routen zu generieren, um die Umleitung zu erleichtern. Durch die Routenbenennung können bestimmte Routen einfach URLs oder Weiterleitungen generieren. Entwickler können mithilfe der Namensmethode eine Verknüpfung zu Routen herstellen, um den Namen einer bestimmten Route zu definieren.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Laravel 6-Version, Dell G3-Computer.
Laravels Routenbenennung
laravel Die Rolle der Routenbenennung: Routen generieren, um die Umleitung zu erleichtern.
Routenbenennung ermöglicht es bestimmten Routen, auf einfache Weise URLs oder Weiterleitungen zu generieren. Sie können den Namen einer bestimmten Route definieren, indem Sie sie mit der Namensmethode verknüpfen:
Route::get('user/profile', function () { // })->name('profile');
Sie können auch einen Routennamen für die Methode eines Controllers angeben:
Route::get('user/profile', 'UserProfileController@show')->name('profile');
Generieren Sie eine URL, die auf eine benannte Route verweist
Sobald der Name für eine bestimmte Route zugewiesen wurde, können Sie den Namen der Route verwenden, wenn Sie eine URL generieren oder über die globale Routenfunktion umleiten:
// 生成 URL... $url = route('profile'); // 重定向... return redirect()->route('profile');
Wenn die benannte Route Parameter definiert, können Sie die Parameter an die Route übergeben Funktion als zweiter Parameter. Der angegebene Parameter wird automatisch an der richtigen Stelle in die URL eingefügt:
Route::get('user/{id}/profile', function ($id) { // })->name('profile'); $url = route('profile', ['id' => 1]);
Überprüfen Sie die aktuelle Route
Wenn Sie feststellen möchten, ob die aktuelle Anfrage an eine bestimmte benannte Route weitergeleitet wird, können Sie on verwenden Routeninstanz benannte Methode. Sie können beispielsweise den aktuellen Routennamen in der Routing-Middleware überprüfen:
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if ($request->route()->named('profile')) { // } return $next($request); }
Routennamen-Präfix
Mit der Namensmethode kann jedem Routennamen in der Routengruppe eine bestimmte Zeichenfolge hinzugefügt werden. Beispielsweise möchten Sie möglicherweise den Namen aller Gruppenrouten „admin“ voranstellen. Die angegebene Zeichenfolge ist genau die gleiche wie das angegebene Routennamenspräfix, daher stellen wir sicher, dass das nachgestellte Zeichen im Präfix angegeben wird:
Route::name('admin.')->group(function () { Route::get('users', function () { // 指定路由名为 "admin.users"... })->name('users'); });
Ressourcenroutenbenennung
Ressourcenroute
Route::resource('users', 'UsersController');
Das oben genannte Der Code entspricht In:
Route::get('/users', 'UsersController@index')->name('users.index'); Route::get('/users/{user}', 'UsersController@show')->name('users.show'); Route::get('/users/create', 'UsersController@create')->name('users.create'); Route::post('/users', 'UsersController@store')->name('users.store'); Route::get('/users/{user}/edit', 'UsersController@edit')->name('users.edit'); Route::patch('/users/{user}', 'UsersController@update')->name('users.update'); Route::delete('/users/{user}', 'UsersController@destroy')->name('users.destroy');
resource Routenbenennung
Route::resource('foo', 'ProductsController'); route('foo.index'); // http://your.website/foo Route::resource('products', 'ProductsController', ['names' => 'foo']); route('foo.index'); // http://your.website/products Route::resource('products', 'ProductsController', ['names' => 'admin.products']); route('admin.products.index'); // http://your.website/products
resource Routenpräfix:
Route::resource('products', 'ProductsController', ['as' => 'admin']); route('admin.products.index'); // http://your.website/products
[Verwandte Empfehlungen: Laravel-Video-Tutorial]
Das obige ist der detaillierte Inhalt vonWelchen Nutzen hat die Routenbenennung von Laravel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!