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

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

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 的作者的第一篇文章。

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
洛未必达
最佳答案

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

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

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

4年前 评论

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

4年前 评论

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

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

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

4年前 评论

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

4年前 评论

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