Laravel 调用未定义的方法 Serahk\MyPackage\MyPackageServiceProvider::isDeferred()

问题描述 投票:0回答:1

我正在尝试创建一个新包并将其与 Laravel 一起使用。现在很简单,服务提供商只加载路由文件和只有一个视图的视图。 在我的路线文件中,我仅返回此视图。

我已将此包添加到我的主项目composer.json 文件中,如下所示的存储库部分和require 部分:

存储库部分

    {
        "type": "path",
        "url": "/home/serahk/Documents/packages/mypackage"
    }

需要部分:

"serahk/mypackage": "dev-main"

然后运行

composer update
,现在出现以下错误,表明我的服务提供商中未定义方法 isDeffered 。 我的服务提供商根本没有这个方法,我不太确定 laravel 从哪里得到这个方法。以下是我的基本服务提供者:

<?php

namespace Serahk\MyPackage;

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

    public function register()
    {

    }
}

已尝试运行 Composer dump 但仍然遇到相同的错误。 我还删除了供应商和composer.lock并尝试再次重新安装,但仍然遇到相同的错误你的文本

laravel
1个回答
0
投票

isDeferred()
方法在类
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()
    {

    }
}
© www.soinside.com 2019 - 2024. All rights reserved.