Eloquent 来自数据库的两个日期之间,Laravel 4
Eloquent between two dates from database, Laravel 4
我在数据库中有优惠券 table。有 start_date 和 finish_date 来确定凭证或优惠券的有效性。通过获取当天的日期、日期和时间,如果有效期仍然有效,则可以使用凭证或优惠券,如果有效期已过,则无法再次使用凭证或优惠券。
下面是我用来处理代金券或优惠券的源代码,但效果不是很好。
有没有人可以帮助我解决这个问题?
谢谢
public function coupon()
{
$c = Input::get('coupon');
$date = Carbon::now();
$check = StoreVoucher::whereRaw("code = '".$c."'")
->whereRaw("status = 1")
->whereRaw("start_date", ">=", $date)
->whereRaw("finish_date", "<=", $date)
->first();
}
public function coupon()
{
$c = Input::get('coupon');
$date = Carbon::now();
$check = StoreVoucher::where("code",$c)
->whereStatus(1)
->whereDate("start_date", ">=", $date)
->whereDate("finish_date", "<=", $date)
->first();
}
试试这个
您正在使用 whereRaw,但使用方式有误。
public function coupon()
{
$c = Input::get('coupon');
$date = Carbon::now();
$check = StoreVoucher::whereRaw("code = '".$c."'")
->whereRaw("status = 1")
->whereRaw("start_date >= '$date'")
->whereRaw("finish_date <= '$date'")
->first()
}
WhereRaw() 方法将条件作为字符串。
public function coupon() {
return StoreVoucher::where('code', Input::get('coupon'))
->where('status', '1')
->where('start_date', '>=', Carbon::now())
->where('finish_date', '<=', Carbon::now())
->first();
}
将此添加到您的 StoreVoucher
模型中:
protected $dates = ['start_date', 'finish_date'];
我在数据库中有优惠券 table。有 start_date 和 finish_date 来确定凭证或优惠券的有效性。通过获取当天的日期、日期和时间,如果有效期仍然有效,则可以使用凭证或优惠券,如果有效期已过,则无法再次使用凭证或优惠券。 下面是我用来处理代金券或优惠券的源代码,但效果不是很好。 有没有人可以帮助我解决这个问题? 谢谢
public function coupon()
{
$c = Input::get('coupon');
$date = Carbon::now();
$check = StoreVoucher::whereRaw("code = '".$c."'")
->whereRaw("status = 1")
->whereRaw("start_date", ">=", $date)
->whereRaw("finish_date", "<=", $date)
->first();
}
public function coupon()
{
$c = Input::get('coupon');
$date = Carbon::now();
$check = StoreVoucher::where("code",$c)
->whereStatus(1)
->whereDate("start_date", ">=", $date)
->whereDate("finish_date", "<=", $date)
->first();
}
试试这个
您正在使用 whereRaw,但使用方式有误。
public function coupon()
{
$c = Input::get('coupon');
$date = Carbon::now();
$check = StoreVoucher::whereRaw("code = '".$c."'")
->whereRaw("status = 1")
->whereRaw("start_date >= '$date'")
->whereRaw("finish_date <= '$date'")
->first()
}
WhereRaw() 方法将条件作为字符串。
public function coupon() {
return StoreVoucher::where('code', Input::get('coupon'))
->where('status', '1')
->where('start_date', '>=', Carbon::now())
->where('finish_date', '<=', Carbon::now())
->first();
}
将此添加到您的 StoreVoucher
模型中:
protected $dates = ['start_date', 'finish_date'];