我使用的是Laravel 5.5 我有一个' Post'模型。在该模型中,我想使用路由参数(比如userId)..我在Post Controller中有这个id。
public function getPosts($userId)
{
$posts = Post::latest()->paginate(8);
return Response::json($posts);
}
我想在Post Model中使用$ userId来获取更多信息。 如何从Post模型访问此参数?我应该使用session来存储userId值并尝试使用它吗?还有其他办法吗?
答案 0 :(得分:4)
您可以使用request()
帮助程序:
// Get a specific route parameter
request()->route()->parameter('userId')
// Get all route parameters
request()->route()->parameters()
假设您在Post
型号上有一个功能:
// Post.php
public function doSomething()
{
if (request()->route()->parameter('userId') === 1) {
return 'some value';
}
return 'another value';
}
答案 1 :(得分:1)
你可以这样做:
request()->route('userId')
答案 2 :(得分:0)
接受的答案是完全正确的,但我只想添加一件事。
注意:(如果您正在使用)
request()->route()->parameter('userId');
实际上,您可能会获得整个User
对象,而不仅仅是ID
,因为Laravel可以自动在您的User
表中找到条目并将其注入到请求中。
如果发生这种情况,您可能会遇到一些讨厌的,不合逻辑的错误,但是解决方案很简单:只需将->id
添加到该request line
(或其他名称)中您的ID属性是)。像这样:
request()->route()->parameter('userId')->id;