1

私は fullcalendar プラグインを使用しており、特定の日付の前後にデータベース内のすべてのイベントを取得しようとしています。フル カレンダーは、'start' と 'end' というパラメーターを追加することで、イベントのページ付けを行います。次のように、これらを Carbon インスタンスに解析できます。

Carbon::parse($data['start']);
Carbon::parse($data['end']);

これで問題なく動作しています:

$events = $this->event->where('user_id', auth()->user()->id)
                        ->get();

しかし、これはそうではありません:

$events = $this->event->where('user_id', auth()->user()->id)
                        ->where('start', '>=', Carbon::parse($data['start']))
                        ->where('end', '<=', Carbon::parse($data['end']))
                        ->get();

2 番目のアプローチで、これら 2 つの日付の間にイベントが公開されないのはなぜですか。最初のアプローチを実行すると、正常に動作し、すべてのイベントを取得して現在のページに公開しますが、残念ながら、取得する必要のない多くのイベントも取得しています。

DB クエリを聞いた後、イベント クエリは次のようになりました。

select * from eventswhere user_id= ? およびstart>= ? とend<= ?

4

1 に答える 1

0

これは、DB でイベントの終了日を設定していなかったため、認証されたユーザーのすべてのイベントが正しく機能していたクエリの小さな間違いでした。

実際、クエリ>= startも単独で機能しますが<= end、 end が null であるため問題として作成されていたため、Eloquent はモデルを返していませんでした。

于 2015-05-12T07:59:34.570 に答える