[英]laravel query between two dates from two date columns database
我有一個數據庫events
,它有 2 個名為date_from
的日期列,它指的是開始日期,而date_to
是指結束日期。 列event_date
是發布事件的時間。 我的問題是如何使用 eloquent 進行查詢? 我嘗試了這段代碼,但它返回了一個錯誤。 Type error: Argument 2 passed to Illuminate\Database\Query\Builder
詢問
$events = Event::where('school_id', '=', Auth::user()->school_id)
->where('status', '=', 1)
->where('active', '=', 1)
->whereRaw("group_id in('$role', '0')")
->whereBetween("date_from", "date_to" )
->limit(2)
->get();
數據庫結構
| Field | Type | Null | Key | Default | Extra |
+-------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(191) | NO | | NULL | |
| content | text | NO | | NULL | |
| group_id | int(11) | NO | | NULL | |
| event_date | date | YES | | NULL | |
| date_from | date | YES | | NULL | |
| date_to | date | YES | | NULL | |
| time_from | time | YES | | NULL | |
| time_to | time | YES | | NULL | |
| event_place | varchar(191) | NO | | NULL | |
| image | varchar(191) | NO | | | |
| school_id | int(11) | NO | | NULL | |
| smsnotify | int(11) | NO | | 0 | |
| appnotify | int(11) | NO | | 0 | |
| status | int(11) | NO | | 0 | |
| active | int(11) | NO | | 0 | |
| updated_by | varchar(191) | YES | | NULL | |
| created_at | timestamp | YES | | NULL | |
| updated_at | timestamp | YES | | NULL | |
| users_id | int(11) | YES | | NULL | |
+-------------+------------------+------+-----+---------+----------------+
我剛剛通過使用兩個whereRaw
語句解決了它
$now = Carbon::now()->toDateString();
$events = Event::where('school_id', '=', Auth::user()->school_id)
->where('status', '=', 1)
->where('active', '=', 1)
->whereRaw("group_id in('$role', '0')")
->whereRaw("date_from <= date('$now')")
->whereRaw("date_to >= date('$now')")
->limit(2)
->get();
Use whereColumn of laravel query builder like this.
$events = Event::where('school_id', '=', Auth::user()->school_id)
->where('status', 1)
->where('active', 1)
->whereRaw("group_id in('$role', '0')")
->whereColumn([ ['date_from', '>=', 'event_date'], ['date_to', '<=', 'event_date'] ]);
->limit(2)
->get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.