查看特定用户今天创建的数据库数据

时间:2018-04-26 23:01:29

标签: laravel date controller userid

我正在创建一个foodlog,我希望用户能够搜索这些日子并查看当天才记录的食物。
例如,在今天的页面上,我只想看到我今天记录的所有食品。

我让我的表从所有日期获取该特定用户的所有数据,但是如何将其缩小到今天呢?

FoodlogController.php

public function show() {

    $userId = Auth::user()->id;

    $posts = Post::where('user_id', $userId)->get();


    return view('foodlog', compact('posts'));

}

这就是我的表格

enter image description here

1 个答案:

答案 0 :(得分:0)

我将假设您有默认时间戳,其中添加了created_atupdated_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方式。