您好,登錄后才能下訂單哦!
這篇“laravel的路由命名有什么作用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“laravel的路由命名有什么作用”文章吧。
在laravel中,路由命名的作用是生成路由,便于重定向;路由命名可以讓特定路由方便地生成URL或重定向。開發者可以用name方法鏈接到路由來定義指定路由的名稱。
本教程操作環境: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的路由命名有什么作用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。