如何将 laravel 7 护照与 mongodb 一起使用?

我安装了 jenssegers/laravel 包以在我的 Laravel 项目中使用 mongodb,但是当我尝试安装 passport 时出现此错误:

在 null 上调用成员函数 prepare()

http://img2.mukewang.com/643a63c6000156f818960583.jpg

我尝试使用designmynight 包,但它似乎与我用于 Laravel 7 的 jenssegers v4 不兼容。

知道如何解决这个问题吗?


心有法竹
浏览 107回答 3
3回答

杨__羊羊

这非常简单。没有任何额外的包是可能的。仅编辑此路径下的 AuthCode.php、PersonalAccessClient.php、Client.php 和 Token.php:“/供应商/laravel/护照/src/”替换这一行:use Jenssegers\Mongodb\Eloquent\Model;通过这一行:use Illuminate\Database\Eloquent\Model;注意:如果您在所有顶级模型中使用特定于您的 mongo 连接的多连接,如下所示:protected $connection = 'mongodb';

精慕HU

这对我有用在 Models 文件夹中创建护照模型 Authcode,Client,PersonalAccessClient,Token从 /vendor/laravel/passport/src/ 复制原始代码并粘贴编辑命名空间并替换use Jenssegers\Mongodb\Eloquent\Model反而use Illuminate\Database\Eloquent\Model;在 AppServiceProvider.php 的 boot() 方法中添加如下代码$loader = AliasLoader::getInstance();$loader->alias(\Laravel\Passport\AuthCode::class,\App\Models\Passport\AuthCode::class);$loader->alias(\Laravel\Passport\Client::class,\App\Models\Passport\Client::class);$loader->alias(\Laravel\Passport\Token::class,\App\Models\Passport\Token::class);$loader->alias(\Laravel\Passport\PersonalAccessClient::class,\App\Models\Passport\PersonalAccessClient::class);

尚方宝剑之说

目前我正在将 Laravel 8 与 Jessengers V4 一起使用,我遇到了同样的问题护照的内部供应商只需替换为:use Jenssegers\Mongodb\Eloquent\Model反而   use Illuminate\Database\Eloquent\Model;一切正常。我建议编写一个自动替换的脚本,也许使用命令“sed”或 fork 项目。
打开App,查看更多内容
随时随地看视频慕课网APP