我正在尝试创建一个新包并将其与 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并尝试再次重新安装,但仍然遇到相同的错误你的文本
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()
{
}
}