Awa*_*rni 3 php laravel stripe-payments
我的应用程序是在Laravel 5.1. 我可以使用laravel 的计费模块from 5.2吗?我在 5.2 中看到计费模块非常不同,需要不同的命名空间和接口。我试图通过升级cashier package到 ~6.0来使用,但它产生了错误
Error Output: PHP Fatal error: Interface 'Laravel\Cashier\Contracts\Billable' not found in /project/app/Models/User.php on line 8
Run Code Online (Sandbox Code Playgroud)
在Laravel 5.1with 中cashier 4.0,这就是我的用户模型具有以下命名空间的方式
<?php namespace App\Models;
use Cartalyst\Sentinel\Users\EloquentUser;
use Laravel\Cashier\Billable;
use Laravel\Cashier\Contracts\Billable as BillableContract;
class User extends EloquentUser implements BillableContract
{
use Billable;
/////
}
Run Code Online (Sandbox Code Playgroud)
但是当我升级时cashier to ~6.0它产生了上述错误。
我们可以在 5.1 中使用 Laravel 5.2 的收银员包,如果是,我该怎么做?
根据库composer.json文件,Cashier 6.0 的依赖项不超过 Laravel 5.1 可以提供的要求,因此您应该能够将 Cashier 6.0 与 Laravel 5.1 一起使用。这里的解决方案看起来很简单,把合同里的那一行去掉即可:
use Laravel\Cashier\Contracts\Billable as BillableContract;
Run Code Online (Sandbox Code Playgroud)
并且只使用Billable特征:
use Laravel\Cashier\Billable;
Run Code Online (Sandbox Code Playgroud)
那是因为虽然 Cashier 5.0 在 中定义了Billable接口,但 6.0 版删除了. 此外,Laravel 5.1的收银台文档展示了如何通过添加您当前使用的两个 use 语句来使用 Cashier 5 设置模型,而使用 Cashier 6 的 Laravel 5.2的收银台文档仅显示您需要使用该特征。ContractsBillable
Cashier 4 和 6 依赖项之间还有另一个显着区别:
"stripe/stripe-php": "~1.9""stripe/stripe-php": "~3.0"因此,请确保也满足该要求。
| 归档时间: |
|
| 查看次数: |
1462 次 |
| 最近记录: |