Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel未使用账单/出纳应用优惠券_Php_Laravel_Laravel 5_Stripe Payments_Laravel Cashier - Fatal编程技术网

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。生活和学习:)