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

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

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
洛未必达
最佳答案

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

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

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

3年前 评论

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

3年前 评论

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

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

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

3年前 评论

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

3年前 评论

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