猿问

Laravel - 仅显示今天使用 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 今天发表的所有帖子,但没有任何反应。它向我显示了所有创建过的帖子,我只需要在今天或创建当天创建的帖子。有什么建议?


心有法竹
浏览 128回答 1
1回答

繁花不似锦

您的代码似乎工作得很好。然而,你应该返回$posts不$user->posts,你的回线应该是这样的。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);
随时随地看视频慕课网APP
我要回答