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

view database data that was created today by a specific user

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

我 table 从该特定用户获取所有日期的所有数据,但如何将范围缩小到今天?

FoodlogController.php

public function show() {

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

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


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

}

这就是我的 table 的样子

我假设您启用了默认时间戳,其中添加了 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();

这将获取今天创建的 post。

不过

我强烈建议您创建一个 hasMany relationship(用户 hasMany post 和相反的 post belongsTo 用户),这将启用使用关系并做这样的事情:

$posts = $user->posts()->whereDate('created_at', \Carbon\Carbon::today())->get();

还有更多的东西,Laravel 方式。