You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Cashier服务器部署报错:Trait Laravel\Cashier\Billable未找到

解决Laravel Cashier "Billable trait not found" 服务器报错问题

问题背景

本地已完成Laravel Cashier功能开发,服务器部署时执行了更新.env、npm run build、推送代码等操作,但运行时出现报错:

production.ERROR: Trait "Laravel\Cashier\Billable" not found

已移除.gitignore中对vendor目录的排除规则,且本地正常运行版本中也找不到Laravel\Cashier\Billable文件,需排查其他解决方向。

可尝试的解决方法

1. 确认Cashier包的安装状态

  • 本地执行以下命令,检查是否已正确安装Laravel Cashier:
    composer show laravel/cashier
    
    若未安装,根据你的Laravel版本安装对应版本的Cashier(例如Laravel 10对应Cashier 14.x):
    composer require laravel/cashier "^14.0"
    
  • 服务器上执行生产环境依赖安装命令(不推荐直接推送vendor目录,避免系统/环境差异导致问题):
    composer install --no-dev --optimize-autoloader
    

2. 清除Laravel全量缓存

服务器上执行以下命令清除各类缓存,避免缓存导致的类加载异常:

php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
php artisan optimize:clear

3. 检查版本兼容性

确认Laravel与Cashier的版本匹配:

  • 本地查看Laravel版本:php artisan --version
  • 对照官方版本要求调整composer.json中的Cashier版本约束,例如:
    • Laravel 9 → Cashier 13.x
    • Laravel 10 → Cashier 14.x
    • Laravel 11 → Cashier 15.x
  • 本地更新依赖后重新推送代码,服务器再次执行composer install --no-dev

4. 重建自动加载文件

服务器上执行以下命令,重新生成Composer自动加载映射:

composer dump-autoload --optimize

5. 检查服务器PHP版本

Cashier对PHP版本有最低要求(例如Cashier 14.x需要PHP 8.1+),执行php -v检查服务器PHP版本,若不满足则升级PHP。

6. 确认命名空间正确性

若你安装的是Cashier Paddle版本(而非默认的Stripe版本),Billable trait的命名空间应为Laravel\Paddle\Billable,需修正User模型中的use语句。

内容的提问来源于stack exchange,提问作者maganthro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 04:15:39