【问题标题】:Laravel package/service provider additionLaravel 包/服务提供者添加
【发布时间】:2020-08-02 15:37:28
【问题描述】:

我正在尝试在我的 laravel 应用程序中使用 https://github.com/sebdesign/laravel-state-machine。但是该软件包未正确安装。我的控制器无法识别它。 首先,我在 composer.json 中添加了以下内容

"repositories": [
  {
     "type": "vcs",
     "url": "https://github.com/sebdesign/state-machine"
  }
]

然后我运行

composer require sebdesign/laravel-state-machine:1.0

然后我在我的 config/app.php 中添加了以下内容

'providers' => [
    Sebdesign\SM\ServiceProvider::class,
],

'aliases' => [
    'StateMachine' => Sebdesign\SM\Facade::class,
],

之后我使用

在 config/state-machine.php 中发布配置文件
php artisan vendor:publish --provider="Sebdesign\SM\ServiceProvider"

就是这样。现在我试图在我的控制器中使用它:

// Using the facade
$stateMachine = StateMachine::get($article, 'simple');

StateMachine 无法识别。我来了

Undefined type 'App\Api\V1\Controllers\Resource\StateMachine'

我在这里遗漏了什么吗?我应该在控制器的开头添加 use 语句吗?

编辑:Laravel 5.1 谢谢

【问题讨论】:

  • 看起来您没有包含use 声明。请相应地检查您的代码,并删除不相关的标签
  • 是的,这是我的问题,我应该在使用声明中包含什么。请写下来好吗
  • 是的,我只是想通了。我将使用 \SM\Factory\Factory 添加为 SMFactory;到我的模型

标签: laravel package composer-php service-provider


【解决方案1】:

如果您使用的是最新版本和自动发现工具,则无需使用以下行。

从 5.5 版本开始,Laravel 使用包自动发现,所以你不需要 需要手动添加ServiceProvider和facade。如果你不 使用自动发现或者您使用的是旧版本,添加服务 provider 和 config/app.php 中的外观。

<?php

'providers' => [
    Sebdesign\SM\ServiceProvider::class,
],

'aliases' => [
    'StateMachine' => Sebdesign\SM\Facade::class,
],

composer require 后需要直接运行这个命令。

php artisan vendor:publish --provider="Sebdesign\SM\ServiceProvider"

你需要根据你的 laravel 版本安装兼容版本的包。

composer require sebdesign/laravel-state-machine:^1.0

那么你需要如下使用它:

use \SM\Factory\Factory as SMFactory;

【讨论】:

  • @marmahan 我已经更新了我的答案。查看如何安装兼容版本的软件包。
  • @marmahan 您需要使用特定版本的包再次执行所有步骤。
  • 请进一步解释此代码如何解决给定的错误消息Undefined type 'App\Api\V1\Controllers\Resource\StateMachine'
  • 它正在工作。谢谢你。我重新安装了软件包并添加了 use \SM\Factory\Factory 作为 SMFactory;到我的模型。然后我就可以调用 SMFactory
  • 当然,我刚刚做到了。但是,如果您可以将 use 语句 use \SM\Factory\Factory as SMFactory 添加到它,那将是一个完整的答案;
猜你喜欢
  • 1970-01-01
  • 2016-12-21
  • 2015-10-24
  • 2016-10-06
  • 1970-01-01
  • 1970-01-01
  • 2017-01-11
  • 2019-05-29
  • 2014-04-20
相关资源
最近更新 更多