首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >laravel隐性路由绑定

laravel隐性路由绑定

作者头像
章鱼喵
发布2019-04-09 16:17:26
1.3K0
发布2019-04-09 16:17:26
举报
文章被收录于专栏:codingcoding

路由设置resources/web.php

Route::get('/users/{user}', 'UsersController@show')->name('users.show');

控制器app/Http/Controllers/UsersController.php:

public function show(User $user)
{
    return view('users.show', compact('user'));
}

当访问 http://test.com/users/1 时,控制器对应的变量名$user会匹配路由片段中的{user},这样,Laravel 会自动注入与请求 URI 中传入的 ID 对应的用户模型实例

此功能称为 『隐性路由模型绑定』,是『约定优于配置』设计范式的体现,同时满足以下两种情况,此功能即会自动启用:

  • 路由声明时必须使用 Eloquent 模型的单数小写格式来作为路由片段参数,User 对应 {user}:

在使用资源路由 Route::resource('users', 'UsersController'); 时,默认已经包含了上面的声明。

  • 控制器方法传参中必须包含对应的 Eloquent 模型类型声明,并且是有序的:

综上,Laravel 将会自动查找 ID 为 1 的用户并赋值到变量 $user 中,如果数据库中找不到对应的模型实例,会自动生成 HTTP 404 响应

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.03.31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档