我正在创建一个foodlog
,我希望用户能够搜索这些日子并查看当天才记录的食物。
例如,在今天的页面上,我只想看到我今天记录的所有食品。
我让我的表从所有日期获取该特定用户的所有数据,但是如何将其缩小到今天呢?
FoodlogController.php
public function show() {
$userId = Auth::user()->id;
$posts = Post::where('user_id', $userId)->get();
return view('foodlog', compact('posts'));
}
这就是我的表格
答案 0 :(得分:0)
我将假设您有默认时间戳,其中添加了created_at
和updated_at
字段。如果情况并非如此,并且您使用其他列记录创建时间,则只需将created_at
替换为其中。
Laravel带有一个用于处理日期的手工包 - Carbon,可以通过从Carbon\Carbon
命名空间导入来使用。
Laravel的查询构建器有一个方法whereDate(滚动到" whereDate"),可以完全用于此。
结合这两个,你可以这样做:
$posts = Post::where('user_id', $userId)->whereDate('created_at', \Carbon\Carbon::today())->get();
这将获取今天创建的帖子。
<强>然而强>
我强烈建议您创建一个hasMany
relationship(用户hasMany
帖子,反之一个帖子belongsTo
用户),这样可以使用关系并执行以下操作:
$posts = $user->posts()->whereDate('created_at', \Carbon\Carbon::today())->get();
还有很多东西,Laravel方式。