在Laravel
->whereBetween('usage.created_at', array('subscriptions.created_date', 'subscriptions.end_date'))
它将查询作为
`usage`.`created_at` between 'subscriptions.created_date' and 'subscriptions.end_date'
但是我希望查询将subscriptions.created_date
和subscriptions.end_date
视为列本身而不是字符串值
`usage`.`created_at` between subscriptions.created_date and subscriptions.end_date
从subscriptions.created_date
和subscriptions.end_date
删除了引号。
从他们的文档我得到了这个但不适合我的情况,因为我想要列名而不是1
和100
$users = DB::table('users')
->whereBetween('votes', array(1, 100))->get();
我怎样才能做到这一点。我是Laravel的新手。
答案 0 :(得分:2)
或者,您可以使用两个whereRaw()
:
->whereRaw('usage.created_at >= subscriptions.created_date')
->whereRaw('usage.created_at <= subscriptions.end_date');
但如果您真的想使用whereBetween
,我不知道:/
答案 1 :(得分:0)
我相信您必须使用DB::raw
->whereBetween('usage.created_at', array(DB::raw('subscriptions.created_date'), DB::raw('subscriptions.end_date')))