我有一个事件表,包含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