在 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()