laravel - 如果客户付款不完整,请重定向客户
问题描述
我想使用 Cashier 创建一个受限页面。简而言之,我希望开始订阅的页面具有以下限制:
- 没有订阅的用户可以访问
- 发票/订阅不完整且发票未结的用户无法访问。
这是我的代码:
if(Auth::user()->subscribed('default')) {
return redirect()->route('index')->with('error', 'You already have an active subscription right now.');
}
if(Auth::user()->subscribed('default') || Auth::user()->subscription('default')->hasIncompletePayment()){
return redirect()->route('account.invoices')->with('warning', 'You have a payment invoice for a pending subscription. Make payment or cancel.');
}
使用我的这段代码,唯一的问题是当我尝试使用没有订阅的用户访问该页面时,会出现此错误:
在 null 上调用成员函数 hasIncompletePayment()
解决方案
if(Auth::user()->subscribed('default')) {
return redirect()->route('index')->with('error', 'You already have an active subscription right now.');
}
if(!empty(Auth::user()->subscription('default'))){
if(Auth::user()->subscribed('default') || Auth::user()->subscription('default')->hasIncompletePayment()){
return redirect()->route('account.invoices')->with('warning', 'You have a payment invoice for a pending subscription. Make payment or cancel.');
}
}
检查订阅 == null 为空
推荐阅读
- bash - 保护由 shell 脚本自动生成的备份
- xpath - 如何使用 xpath 选择相邻的 html 元素?
- ruby-on-rails - 可以将 Ruby 编译/编码为二进制以隐藏代码吗?
- sql - SQL Tuning advisor 不显示 exec sp_executesql 的提示
- python - 无法在 C# 中导入 python 类
- php - PHP 警告:PHP 启动:无法加载动态库 'c:\\php\\ext\\php_ldap.dll'
- reactjs - 记忆 JSX 元素以便稍后在道具中将它们传递给拥有的组件是否安全?
- visual-c++ - 如何使用 Application Verifier 在我的 DLL 中查找堆损坏?
- php - 通过导入创建时,SKU 无法搜索 WooCommerce 产品
- matlab - 将 RGB 图像与点云匹配