我正在尝试在模板中显示帖子创建日期,{{$blog->created_at->diffForHumans()}}显示日期,但在所有帖子中都相同。即,发布帖子的用户的注册日期。
这样的控制器
public function show($id)
{
$blog = Blog::join('users','author_id','=','users.id')->find($id);
if(!$blog) {
return redirect()->route('post.index')->with('success', 'Ты дурак?');
}
return view('posts.blog_show', compact('blog'));
}
据我了解created_at,它会从 users 表中提取字段,但我该如何做会从 blogs 表中提取的内容?
问题是加入时,相同的字段被覆盖。
即请求后,模型将包含两个表的数据(toArray):
created_at 字段将从连接表中获取。
解决问题的最简单方法是明确指定需要哪些字段:
那么结果将如下(toArray):
created_at - 来自 blogs 表。
这种方法不是很灵活,因为每次需要新的用户字段时,都必须编辑查询。
更可靠的方法是使用关系
为此,您需要在 Blog 模型中声明一个关系:
查询会简单得多:
结果将是这样的(toArray):
并且不会有名称冲突。