首页 > 解决方案 > Laravel 6 无法从为 Laravel 5 发布的快速调整包中找到供应商类

问题描述

我正在尝试使用 Laravel 6.0 中的 Firebird 3.0,并且我正在关注https://firebirdsql.org/file/documentation/reference_manuals/fbdevgd-en/html/fbdevgd30-php-Laravel-crt-project.html其中包https: //github.com/sim1984/laravel-firebird建议。不幸的是,这个包是为 Laravel 5.7 设计的(或者它可能还没有在 composer 存储库中发布),这就是为什么我在尝试安装这个包时收到以下消息的原因:

[InvalidArgumentException]
Could not find a matching version of package sim1984/laravel-firebird. Check the package spelling, your version con
straint and that the package is available in a stability which matches your minimum-stability (dev).

所以,我有一个很好的想法来微调这个包,这就是为什么我把它分叉为https://github.com/alex153490/laravel-firebird,我在 composer.json 中更改了版本要求。我希望不要做其他工作来确保与 Laravel 6 的兼容性。之后我在我的 Laravel 项目的 composer.json 中添加了这个 git 存储库:

 "repositories": [
        {
            "type": "package",
            "package": {
                "name": "alex153490/laravel-firebird",
                "version": "master",
                "source": {
                    "url": "https://github.com/alex153490/laravel-firebird.git",
                    "type": "git",
                    "reference": "master"
                }
            }
        }
    ]

现在包安装好了。我在我的 Laravel 项目中创建了一个模型文件,并添加了导入

use Firebird\Eloquent\Model;

正如原始包装的原始描述所建议的那样。

但现在我开始收到错误

Symfony\Component\Debug\Exception\FatalThrowableError
Class 'Firebird\Eloquent\Model' not found 

在尝试从我的项目的简单 rest API 控制器中调用此模型类时。

为什么找不到此类错误-软件包安装时没有错误,该软件包位于我项目的供应商文件夹中,一切似乎都正常。我已经检查了清单https://dev.to/dechamp/php---how-to-fix-class--not-found-error-1gp9中可能存在的问题,包括我为我的项目重新生成了自动加载文件,但没有帮助。

我做错了什么?为什么很难从供应商目录中的包中看到类?

ps 当我尝试为 Laravel 6 使用建议的 Laravel-Firebird 包时(https://packagist.org/packages/harrygulliford/laravel-firebirdhttps://github.com/KKSzymanowski/laravel-6-firebird)我总是得到最基本的select语句的异常事件:

Illuminate\Database\QueryException
SQLSTATE[HY000]: General error: -901 Dynamic SQL Error SQL error code = -901 feature is not supported (SQL: select * from "MY_TABLE") 

在我看来,该软件包的作者刚刚提供了 Firebird 特定语法的数据(包括系统数据的语句),但他们忽略了 Firebird 可能缺少一些 Laravel 使用的功能。

标签: laravelcomposer-phpfirebirdclassnotfound

解决方案


推荐阅读