首頁 > php框架 > Laravel > laravel的路由命名有什麼用

laravel的路由命名有什麼用

青灯夜游
發布: 2022-02-23 18:06:25
原創
3938 人瀏覽過

在laravel中,路由命名的功能是產生路由,方便重定向;路由命名可以讓特定路由方便地產生URL或重定向。開發者可以用name方法連結到路由來定義指定路由的名稱。

laravel的路由命名有什麼用

本教學操作環境:windows7系統、Laravel6版、Dell G3電腦。

laravel的路由命名

laravel 路由命名的功能:產生路由,以便於重定向。

路由命名可以讓特定路由方便地產生 URL 或重定向。您可以用name 方法連結到路由來定義指定路由的名稱:

Route::get('user/profile', function () {
    //
})->name('profile');
登入後複製

也可以為控制器的方法指定路由名稱:

Route::get('user/profile', 'UserProfileController@show')->name('profile');
登入後複製

產生指向命名路由的URL

一旦為給定路由分配了名稱,則在透過全域route 函數產生URL 或重定向時,可以使用路由的名稱:

// 生成 URL...
$url = route('profile');

// 重定向...
return redirect()->route('profile');
登入後複製

如果命名路由定義了參數,則可以將參數作為第二個參數傳遞給route 函數。給定的參數將自動插入到其正確位置的URL 中:

Route::get('user/{id}/profile', function ($id) {
    //
})->name('profile');
$url = route('profile', ['id' => 1]);
登入後複製

#檢查目前路由

如果您想要確定目前請求是否路由到給定的命名路由,您可以在路由實例上使用named 方法。例如,您可以在路由中間件檢查目前路由名稱:

/**
 * 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');
});
登入後複製

resource 路由命名

resource 路由

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');
登入後複製

resource 路由的命名

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 路由前綴:

Route::resource('products',  'ProductsController',  ['as'  =>  'admin']);
route('admin.products.index'); // http://your.website/products
登入後複製

【相關推薦:laravel影片教學

以上是laravel的路由命名有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板