为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
心有法竹 2023-04-15 16:43:18
我安装了 jenssegers/laravel 包以在我的 Laravel 项目中使用 mongodb,但是当我尝试安装 passport 时出现此错误:在 null 上调用成员函数 prepare()我尝试使用designmynight 包,但它似乎与我用于 Laravel 7 的 jenssegers v4 不兼容。知道如何解决这个问题吗?
查看完整描述

3 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

这非常简单。没有任何额外的包是可能的。

仅编辑此路径下的 AuthCode.php、PersonalAccessClient.php、Client.php 和 Token.php:

“/供应商/laravel/护照/src/”

替换这一行:

use Jenssegers\Mongodb\Eloquent\Model;

通过这一行:

use Illuminate\Database\Eloquent\Model;

注意:如果您在所有顶级模型中使用特定于您的 mongo 连接的多连接,如下所示:

protected $connection = 'mongodb';


查看完整回答
反对 回复 2023-04-15
?
精慕HU

TA贡献1845条经验 获得超8个赞

这对我有用

  1. 在 Models 文件夹中创建护照模型 Authcode,Client,PersonalAccessClient,Token

  2. 从 /vendor/laravel/passport/src/ 复制原始代码并粘贴

  3. 编辑命名空间并替换

    use Jenssegers\Mongodb\Eloquent\Model

    反而

    use Illuminate\Database\Eloquent\Model;
  4. 在 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);


查看完整回答
反对 回复 2023-04-15
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

目前我正在将 Laravel 8 与 Jessengers V4 一起使用,我遇到了同样的问题

护照的内部供应商只需替换为:

use Jenssegers\Mongodb\Eloquent\Model

反而

   use Illuminate\Database\Eloquent\Model;

一切正常。我建议编写一个自动替换的脚本,也许使用命令“sed”或 fork 项目。


查看完整回答
反对 回复 2023-04-15
  • 3 回答
  • 0 关注
  • 106 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信