查询条件是默认找主键的?

前端的间可以随便起名字,然后 方法注入模型的时候会默认与表的主键进行匹配对吗?

http://{{local}}/api/users/:id/replies?include=topic.user
http://{{local}}/api/users/:user_id/replies?include=topic.user

public function userIndex(User $user){

        $replies = $user->replies()->paginate(20);

        return $this->paginator($replies, new ReplyTransformer());

    }
桃知夭夭
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 9
liyu001989
5年前 评论

@liyu001989 @liyu001989 嗯嗯 我看了这个问题明白了。 之前提问的说到的这个变量名字 , 变量名字其实是有意义的不能乱起的,要不他会关联不上到 User $user~

$api->get('users/{user}/replies','RepliesController@userIndex')
            ->name('api.users.replies.index');
5年前 评论
liyu001989

laravel 路由里面不能乱起,这是在定义路由,你 http 请求的时候不是始终是 id 吗 users/1/replies users/2/replies
这个对于postman,各种前端来说就是 id,他们怎么定义都行啊。

5年前 评论

@liyu001989 这回懂了, :see_no_evil:大神24小时在线的嘛~ 这都一天了,一直都会给我解答疑惑,太感谢了~ :ghost:

5年前 评论

其实变量名能不能“乱起”是相对的,如果你了解其中的原理,那就可以“乱起”。如果你让路由里的参数名和对应控制器方法里的参数名保持一致,就能够解析出正常的模型,如果不一致,框架就会给你一个空的模型

5年前 评论

@FMW
那就是这个意思被

$api->get('users/{user}/replies','RepliesController@userIndex')
            ->name('api.users.replies.index');
public function userIndex(User $user){....}

如果我的模型从 User 变成了 Users 那么代码就应该为

$api->get('users/{users}/replies','RepliesController@userIndex')
            ->name('api.users.replies.index');
public function userIndex(Users $user){....}

这么理解对吧

5年前 评论

@AmberLavigne 还是user啊,你userIndex里面的变量名是user

5年前 评论

@FMW

$api->get('users/{usersself}/replies','RepliesController@userIndex')
            ->name('api.users.replies.index');
public function userIndex(User $usersself){....}

现在懂了,是变量名称一致。

5年前 评论

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