Laravel - 仅显示今天使用碳创建的帖子

Laravel - showing only posts that are created today using carbon

我只需要显示当天为特定用户、用户 ID 创建的帖子。我正在为此使用 Laravel Carbon,但没有任何反应,我不知道问题出在哪里。这是我的代码

这是我的 OptikaController 和两个用户 Carbon:

class OptikaController extends Controller
{

    public function __construct()
    {
        $this->middleware('auth:admin');
        $this->middleware('role:super', ['only'=>'show']);
    }


    public function delta(){
        $date = new Carbon(request('date'));

        $posts = Post::where('user_id', Auth::id(1))
                ->whereDate('created_at','=',$date)
                ->orderBy('created_at', 'DESC')
                ->paginate(30); //add {{ $posts->links() }} if paginate is enabled
        $user_id = auth()->user()->id;
        $user = User::find(1);
        return view('delta', compact('date', $date))->with('posts', $user->posts);
    }

    public function centar(){
        $user_id = auth()->user()->id;
        $user = User::find(2);
        return view('centar')->with('posts', $user->posts);
    }
}

所以我添加 Post::where('user_id', Auth::id(1))$user = User::find(1); 以查看该用户 id 1 今天发布的所有帖子,但 happens.It 没有显示我创建的所有帖子,我只需要帖子今天或那天创建它们。有什么建议吗?

您的代码似乎运行良好。但是,您应该 return $posts 而不是 $user->posts,您的 return 行应该如下所示。

return view('delta', compact('date', $date))->with('posts', $posts);

此外,您可以安全地删除这些行,除非您需要将用户传递给您的视图。

$user_id = auth()->user()->id;
$user = User::find(1);

因此您的代码应如下所示:

$date = Carbon::parse(request('date'));

$posts = Post::where('user_id', User::find(1)->id)
    ->whereDate('created_at', '=', $date)
    ->orderBy('created_at', 'DESC')
    ->paginate(30);

return view('delta')->with('date', $date)->with('posts', $posts);