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

Posted

技术标签:

【中文标题】在 null sanctun laravel mongodb 上调用成员函数 prepare()【英文标题】:Call to a member function prepare() on null sanctun laravel mongodb 【发布时间】:2021-12-22 19:15:27 【问题描述】: 圣所版本:^2.12 Laravel 版本:8.69.0 php 版本:7.4 数据库驱动和版本:mongoDB

说明:

系统完全设置后,一切正常。但是在$user->createToken('token_base_name')->plainTextToken创建新令牌的更改之后,请继续给我Call to a member function prepare() on null

personal_access_tokens 表存在但为空。

Schema::create('personal_access_tokens', function (Blueprint $table) 
            $table->morphs('tokenable');
            $table->string('name'); # OR $table->string('token_base_name'); ->> no changes
            $table->string('token', 64)->unique();
            $table->text('abilities')->nullable();
            $table->timestamp('last_used_at')->nullable();
            $table->timestamps();
        );

【问题讨论】:

听起来你还没有连接到数据库 我愿意。我可以从其他表中获取记录。错误出现在createToken sanctum 方法@RiggsFolly 【参考方案1】:

我修复了它,但我不得不更改非项目文件。

vendor/laravel/sanctum/src/PersonalAccessToken.php for mongoDB 中必须使用Jenssegers\Mongodb\Eloquent\Model

PersonalAccessToken.php 就像:


use Jenssegers\Mongodb\Eloquent\Model;
use Laravel\Sanctum\Contracts\HasAbilities;

class PersonalAccessToken extends Model implements HasAbilities


 ......
 

【讨论】:

您最好向该软件包的开发人员报告,您可能做了正确的事情,但也可能没有,当您升级到新版本时,您将失去该更改

以上是关于在 null sanctun laravel mongodb 上调用成员函数 prepare()的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 8 的问题:在 null 上调用成员函数 count()

laravel 一对多在一侧返回 null

从 Laravel 5.3 升级到 Laravel 5.4 并且空字段转换为 NULL

Laravel 关系返回 null

在 laravel 中更新时,我的选择表单返回 null

5 个 Laravel Eloquent 小技巧