laravelのルート命名は何に役立ちますか?

青灯夜游
リリース: 2022-02-23 18:06:25
オリジナル
3902 人が閲覧しました

laravel では、ルート名の役割は、リダイレクトを容易にするルートを生成することです。ルート名を使用すると、特定のルートで URL やリダイレクトを簡単に生成できます。開発者は、name メソッドを使用してルートにリンクし、特定のルートの名前を定義できます。

laravelのルート命名は何に役立ちますか?

このチュートリアルの動作環境: 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート