我正在尝试在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 谢谢
答案 0 :(得分:0)
如果您使用的是最新版本和自动发现工具,则无需使用以下行。
从5.5版开始,Laravel使用包自动发现功能,因此您无需 需要手动添加ServiceProvider和外观。如果你不这样做 使用自动发现,或者您使用的是旧版本,请添加服务 提供程序和config / app.php中的外观。
<?php
'providers' => [
Sebdesign\SM\ServiceProvider::class,
],
'aliases' => [
'StateMachine' => Sebdesign\SM\Facade::class,
],
根据作曲家的要求,您需要直接运行此命令。
php artisan vendor:publish --provider="Sebdesign\SM\ServiceProvider"
您需要根据laravel版本安装兼容版本的软件包。
composer require sebdesign/laravel-state-machine:^1.0
然后您需要按以下方式使用它:
use \SM\Factory\Factory as SMFactory;