1
我有一個來自我的結帳頁面的AJAX請求,它提供用戶輸入的優惠券代碼。這傳遞到我的控制器像這樣:我應該如何在Laravel 5.1中驗證優惠券?
public function attachCoupon(AttachCouponRequest $request)
{
$response = ShopHelper::checkCoupon($request->coupon);
return Response::json($response);
}
我「checkCoupon」功能在從輔助類加載的,看起來像這樣:
public static function checkCoupon($code)
{
$coupon = Coupon::where('code',$code)->get();
if ($coupon->isEmpty()) {
$response = ['valid' => false, 'message' => 'Coupon code not recognised'];
} elseif (isset($coupon->end_date) && $coupon->end_date < Carbon::now()) {
$response = ['valid' => false, 'message' => 'Sorry, that coupon has expired.'];
} elseif (isset($coupon->start_date) && $coupon->start_date > Carbon::now()) {
$response = ['valid' => false, 'message' => 'Sorry, that coupon is not yet valid.'];
} elseif (isset($coupon->status) && $coupon->status === 'inactive') {
$response = ['valid' => false, 'message' => 'Sorry, that coupon is inactive.'];
} else {
$response = ['valid' => true, 'message' => 'Coupon applied successfully!.'];
}
return($response);
}
這似乎非常不laravel樣,是有一個更好的方法來做到這一點?我可以把這個放入我的FormRequest類'AttachCouponRequest'嗎?我應該使用服務提供商嗎?
請幫助我使這更優雅。
謝謝。
啊是有道理的。完全忘記了查詢範圍。我會將其轉到我的模型中,以便快速輕鬆地參考。 –