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);
我只需要显示当天为特定用户、用户 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);