Php Laravel未使用账单/出纳应用优惠券
我试图在创建时将优惠券应用于用户的订阅 为此,我使用以下代码:Php Laravel未使用账单/出纳应用优惠券,php,laravel,laravel-5,stripe-payments,laravel-cashier,Php,Laravel,Laravel 5,Stripe Payments,Laravel Cashier,我试图在创建时将优惠券应用于用户的订阅 为此,我使用以下代码: $user = Auth::user(); if(!empty($request->coupon)){ $user->subscription('monthly')->withCoupon($request->coupon)->create($request->stripeToken); } else { $user->subscription('monthly')->
$user = Auth::user();
if(!empty($request->coupon)){
$user->subscription('monthly')->withCoupon($request->coupon)->create($request->stripeToken);
} else {
$user->subscription('monthly')->create($request->stripeToken);
}
我已经检查了$request->优惠券的值,它包含我的优惠券。优惠券已存在且处于条带中(这是通过编程验证的,因此我知道优惠券是可以的)
订阅在条带内创建,但按全额计费,不考虑优惠券
优惠券在测试环境中,交易通过的网站也在测试环境中。检查是否使用empty
功能设置了对象属性将不会产生预期效果,因为类需要为empty
定义magic方法才能处理不可访问的属性
除此之外,Http\lighting\Request
类使用\uuuu get
访问输入参数,这意味着\uuu isset
在这种情况下甚至不起作用,因为优惠券
属性实际上没有在类中定义。因此,您的条件几乎肯定会与当前代码一起进入else
块(即使您有优惠券
输入参数)
这就是为什么存在该方法,以确定请求是否包含输入项的非空值。所以用这个来代替:
如果($request->has('优惠券'))
您是否完全确定您的代码处于正确的状态!空()
?或者,您可以尝试以这种方式应用优惠券来测试问题的来源:$user->subscription('monthly')->with优惠券(“
**Withyour code**”)->create($request->stripeToken);谢谢你的回答。我应该手动检查if语句(这是我在发布后不久做的),但是逻辑上假设如果字符串不是空的empty
将返回false。生活和学习:)