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

Laravel自定义包报错:MyPackageServiceProvider未定义isDeferred()方法

解决Laravel自定义包服务提供者报错:Call to undefined method Serahk\MyPackage\MyPackageServiceProvider::isDeferred()

报错的核心原因是你的自定义服务提供者没有继承Laravel框架提供的ServiceProvider基类,isDeferred()方法是该基类的内置方法,框架在加载服务提供者时会调用它,你的类未继承所以找不到该方法。

修复步骤:

  1. 修改服务提供者代码,让它继承Illuminate\Support\ServiceProvider:
<?php

namespace Serahk\MyPackage;

use Illuminate\Support\ServiceProvider;

class MyPackageServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $this->loadRoutesFrom(__DIR__.'/route.php');
        $this->loadViewsFrom(__DIR__.'/views', 'serahk/mypackage');
    }

    public function register()
    {

    }
}
  1. 确保你的自定义包的composer.json中正确配置了服务提供者(如果还没添加的话):
{
    "name": "serahk/mypackage",
    "type": "library",
    "autoload": {
        "psr-4": {
            "Serahk\\MyPackage\\": "src/"
        }
    },
    "extra": {
        "laravel": {
            "providers": [
                "Serahk\\MyPackage\\MyPackageServiceProvider"
            ]
        }
    }
}
  1. 回到主项目执行以下命令:
composer dump-autoload
composer update

之前执行清除vendor、composer.lock重新安装无效,是因为问题根源在服务提供者类的结构错误,而非依赖缓存或安装问题,修正继承关系后即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 03:40:56