我的应用程序是在Laravel 5.1
中开发的。我可以使用Billing module 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
Laravel 5.1
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;
/////
}
但是当我升级cashier to ~6.0
时,它产生了上述错误。
我们可以在5.1中使用Laravel 5.2的收银包,如果是的话我该怎么办?
答案 0 :(得分:4)
根据图书馆的composer.json
文件,Cashier 6.0的依赖性不会超出Laravel 5.1可提供的要求,因此您应该能够将Cashier 6.0与Laravel 5.1一起使用。这里的解决方案看起来很简单,只需删除合同中的行:
use Laravel\Cashier\Contracts\Billable as BillableContract;
仅使用Billable
特征:
use Laravel\Cashier\Billable;
这是因为Cashier 5.0拥有Billable
界面defined in Contracts
,版本6.0 removed that。此外,Laravel 5.1的Cashier Documentation显示了如何通过添加您当前正在使用的两个使用语句来设置带有Cashier 5的模型,而使用Cashier 6的Laravel 5.2的Cashier Documentation仅显示您需要使用Billable
特征。
收银员4和6依赖关系之间还有另外一个值得注意的区别:
因此,请确保满足要求。