美文网首页
Laravel 学习日记2018-06-26

Laravel 学习日记2018-06-26

作者: Purson | 来源:发表于2018-06-27 11:11 被阅读0次

    什么是隐性路由模型绑定

    我个人理解,首先是路由模型,路由模型就是在路由里面使用的模型,隐性这个功能就是laravel框架提供,比如定了一个名叫User的Eloquent模型,然后在路由中定了一个路由片段{user},只要在controller中对应方法中声明了一个User $user变量,Laravel 会自动注入与请求 URI 中传入的 ID 对应的用户模型实例。


    App\Http\Controllers

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

    1. 路由声明时必须使用 Eloquent 模型的单数小写格式来作为路由片段参数,User 对应 {user}
    Route::get('/users/{user}', 'UsersController@show')->name('users.show');
    

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

    1. 控制器方法传参中必须包含对应的 Eloquent 模型类型声明,并且是有序的:
    public function show(User $user)
    {
        return view('users.show', compact('user'));
    }
    

    当请求 http://sample.test/users/1 并且满足以上两个条件时,Laravel 将会自动查找 ID 为 1 的用户并赋值到变量 $user 中,如果数据库中找不到对应的模型实例,会自动生成 HTTP 404 响应。

    相关文章

      网友评论

          本文标题:Laravel 学习日记2018-06-26

          本文链接:https://www.haomeiwen.com/subject/bjwmyftx.html