路由模型绑定怎样获取一个作者所有的文章

如文档中的写法一样 ,我们只需要这样写就能获取到某个作者的某篇文章。

use App\Post;
use App\User;

Route::get('api/users/{user}/posts/{post:slug}', function (User $user, Post $post) {
    return $post;
});

那么我想要通过类似这样的写法获取某个作者的所有文章该如何编写更好呢?


我曾试过如下写法

Route::get('post/{post:user_id}',"PostController@index");

但可惜的是他只能够获取这个 ID 的作者的第一篇文章。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
洛未必达
最佳答案

隐式绑定 会找到与路由参数匹配的模型实例,所以只会匹配到一个实例,是无法通过路由参数的方式隐式绑定某个作者的所有文章的。

3年前 评论
讨论数量: 4
洛未必达

隐式绑定 会找到与路由参数匹配的模型实例,所以只会匹配到一个实例,是无法通过路由参数的方式隐式绑定某个作者的所有文章的。

3年前 评论

@洛未必达 嗯,明白了,谢谢兄弟的解答。原本也只是抱着个试一试的心态看能不能不写查询,直接通过这样的方式来获取数据 :joy:

3年前 评论

根据restful 规范,你想获取某个作者全部文章

Route::get('users/{user}/posts',"UsersController@posts");

这么写比较好,控制器注入user,根据关联关系找出!

3年前 评论

@Imuyu 谢谢兄弟的解答,事实上我也正是用这种方式来查询数据的 :joy:

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!