我有一個事件表,包含4個事件,所有事件都有不同的開始日期和結束日期。Eloquent:檢查日期是否在開始日期和結束日期之間
mysql> select id, event_name, event_startdate, event_closedate from events;
+----+--------------+---------------------+---------------------------+
| id | event_name | event_startdate | event_closedate |
+----+--------------+---------------------+---------------------------+
| 1 | Event 1 | 2016-05-01 00:00:00 | 2016-06-30 00:00:00 |
| 2 | Event 2 | 2016-06-01 00:00:00 | 2016-07-30 00:00:00 |
| 3 | Event 3 | 2016-07-01 00:00:00 | 2016-08-30 00:00:00 |
| 4 | Event 4 | 2016-09-01 00:00:00 | 2016-10-30 00:00:00 |
+----+--------------+---------------------+---------------------------+
我想返回當前事件。在MySQL中,以下查詢的工作原理如下:
mysql> select id, event_name, event_startdate, event_closedate from events where now() >= event_startdate and now() <= event_closedate;
+----+--------------+---------------------+---------------------------+
| id | event_name | event_startdate | event_closedate |
+----+--------------+---------------------+---------------------------+
| 1 | Event 1 | 2016-05-01 00:00:00 | 2016-06-30 00:00:00 |
| 2 | Event 2 | 2016-06-01 00:00:00 | 2016-07-30 00:00:00 |
+----+--------------+---------------------+---------------------------+
現在,我想創建等效的Eloquent。我創建了以下內容:
$current_events = DB::table('events')->select('id','event_name', 'event_startdate', 'event_closedate')->where(DB::raw('now()'), '>=', 'event_startdate')->where(DB::raw('now()'), '<=', 'event_closedate')->get();
當我在Laravel一個「DD」輸出,我得到:
"select `id`, `event_name`, `event_startdate`, `event_closedate` from `events` where now() >= ? and now() <= ?"
以上是相當類似的MySQL返回兩個時事查詢,所以我期待看到在我看來,兩個事件,但沒有被輸出,所以我懷疑我做錯了
的觀點是:
@foreach($current_events as $event)
<tr>
<td align="center" class="hidden-xs">{{ $event->id }}</td>
<td>{{ $event->event_name }}</td>
<td>{{ $event->event_startdate }}</td>
<td>{{ $event->event_closedate) }}</td>
</tr>
@endforeach
任何原因爲什麼這不會返回兩個時事?
這兩個查詢完全一樣,據我所見。你爲什麼不'dd($ current_events)'看看你得到了什麼。也許你認爲代碼是問題,而不是查詢。 – haakym
我做了一個dd($ current_events),它在原始問題中。兩者的確如此。 – wiwa1978
對不起,如果我不清楚。我不告訴你轉儲查詢,即' - > toSql'。我告訴你轉儲查詢的值,即' - > get()' – haakym