laravel - Laravel 包/服务提供者添加
问题描述
我正在尝试在我的 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 谢谢
解决方案
如果您使用的是最新版本和自动发现工具,则无需使用以下行。
从 5.5 版本开始,Laravel 使用包自动发现,因此您无需手动添加 ServiceProvider 和外观。如果您不使用自动发现或者您使用的是旧版本,请在 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;
推荐阅读
- c# - 尝试使用提供的 API、基于 TCP 的 JSON 和 C# 与 Heatmiser neoHub 通信
- php - 在mysql中标记正确的复选框并更新正确的行
- regex - 需要正则表达式查找和替换以忽略字符串中的代码字符
- sas-macro - 在 SAS 中使用宏生成联合语句
- python - 如何在python中按日期时间对列表进行排序?
- postgresql - 无法启动 docker 容器,“docker ps -a” STATUS = Exited (1)
- php - 如何使用或不使用插件将实时 wordpress 站点迁移到我的本地主机
- angular - 尝试即时更新生成的 angular6-json-schema-form
- javascript - 找不到带有 rails 5 和 es6 的 babel-transpiler?
- mysql - SQL 替换所有指定的键