首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel包/服务提供商的增加

Laravel包/服务提供商的增加
EN

Stack Overflow用户
提问于 2020-04-20 07:37:09
回答 1查看 1.4K关注 0票数 0

我正在尝试在我的laravel应用程序中使用https://github.com/sebdesign/laravel-state-machine。但是软件包没有正确安装。我的控制器认不出来。首先,我将以下内容添加到我的composer.json中

代码语言:javascript
复制
"repositories": [
  {
     "type": "vcs",
     "url": "https://github.com/sebdesign/state-machine"
  }
]

然后我跑了

代码语言:javascript
复制
composer require sebdesign/laravel-state-machine:1.0

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

代码语言:javascript
复制
'providers' => [
    Sebdesign\SM\ServiceProvider::class,
],

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

之后,我在config/state-machine.php中发布配置文件。

代码语言:javascript
复制
php artisan vendor:publish --provider="Sebdesign\SM\ServiceProvider"

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

代码语言:javascript
复制
// Using the facade
$stateMachine = StateMachine::get($article, 'simple');

StateMachine没有得到认可。我得到了

代码语言:javascript
复制
Undefined type 'App\Api\V1\Controllers\Resource\StateMachine'

我是不是漏掉了什么?我应该在控制器的开头添加一个use语句吗?

编辑:Laravel5.1谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-20 07:41:48

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

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

代码语言:javascript
复制
<?php

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

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

在composer要求之后,您需要直接运行这个命令。

代码语言:javascript
复制
php artisan vendor:publish --provider="Sebdesign\SM\ServiceProvider"

您需要安装兼容版本的软件包,根据您的拉拉版本。

代码语言:javascript
复制
composer require sebdesign/laravel-state-machine:^1.0

然后您需要使用它,如下所示:

代码语言:javascript
复制
use \SM\Factory\Factory as SMFactory;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61317302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档