laravel的路由命名有什么用

在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的路由命名有什么用的详细内容,更多请关注php中文网其它相关文章!

  • 声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

  • 相关标签:
    • 上一篇:
    • 下一篇:
    1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!10210454@qq.com
    2. 本站不保证所提供所有下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
    3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
    4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有RB奖励和额外RMB收入!

    磊宇堂正在使用的服务器 维护管理由磊宇云服务器提供支持

    磊宇堂 » laravel的路由命名有什么用

    提供最优质的资源集合

    立即查看 了解详情