ホームページ > 記事 > PHPフレームワーク > laravelのルート命名は何に役立ちますか?
laravel では、ルート名の役割は、リダイレクトを容易にするルートを生成することです。ルート名を使用すると、特定のルートで URL やリダイレクトを簡単に生成できます。開発者は、name メソッドを使用してルートにリンクし、特定のルートの名前を定義できます。
このチュートリアルの動作環境: Windows 7 システム、Laravel 6 バージョン、Dell G3 コンピューター。
Laravel のルート命名
#laravel ルート命名の役割: リダイレクトを容易にするルートを生成します。 ルート名を使用すると、特定のルートで URL やリダイレクトを簡単に生成できます。 name メソッドを使用してルートにリンクし、指定したルートの名前を定義できます:Route::get('user/profile', function () { // })->name('profile');また、コントローラー メソッドのルート名を指定することもできます:
Route::get('user/profile', 'UserProfileController@show')->name('profile');
# # 名前付きルート URL へのリンクを生成します##指定されたルートに名前が割り当てられると、そのルートの名前は、グローバル ルート関数を介して URL またはリダイレクトを生成するときに使用できます。
// 生成 URL... $url = route('profile'); // 重定向... return redirect()->route('profile');if 名前付きルートでパラメーターが定義されている場合、そのパラメーターを 2 番目のパラメーターとしてルート関数に渡すことができます。指定されたパラメータは、URL の正しい場所に自動的に挿入されます。
Route::get('user/{id}/profile', function ($id) { // })->name('profile'); $url = route('profile', ['id' => 1]);現在のルートを確認してください
current request 指定された名前付きルートにルーティングするかどうかに関係なく、ルート インスタンスで名前付きメソッドを使用できます。たとえば、ルーティング ミドルウェアで現在のルート名を確認できます。
/** * 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); }ルート名のプレフィックス
name メソッドは次の目的で使用できます。ルートグループを与える 各ルート名に指定された文字列を追加します。たとえば、すべてのグループ ルートの名前に「admin」というプレフィックスを付けることができます。指定された文字列は、指定されたルート名のプレフィックスとまったく同じであるため、プレフィックスの末尾に . 文字を必ず指定します:
Route::name('admin.')->group(function () { Route::get('users', function () { // 指定路由名为 "admin.users"... })->name('users'); });リソース ルートの名前付け
リソース ルート
Route::resource('users', 'UsersController');上記のコードは、
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');#リソース ルートの名前付け
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と同等になります。
リソースルーティングプレフィックス:
Route::resource('products', 'ProductsController', ['as' => 'admin']); route('admin.products.index'); // http://your.website/products
[関連する推奨事項: laravel ビデオチュートリアル]
以上がlaravelのルート命名は何に役立ちますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。