php - Laravel Sanctum 默认模型定制
问题描述
我在我的 Laravel 应用程序 `MongoDB 中使用 composer 包作为数据库驱动程序:
https://github.com/jenssegers/laravel-mongodb
默认情况下,Laravel 模型扩展Illuminate\Database\Eloquent\Model
类。
但是当我使用MongoDB then my models must extend the
Jenssegers\Mongodb\Eloquent\Model` 类而不是默认的 Laravel 类时。
我现在如何将 Laravel Sanctum 默认扩展模型类替换Laravel\Sanctum\PersonalAccessToken
为Jenssegers\Mongodb\Eloquent\Model
.
例子
<?php
namespace Laravel\Sanctum;
// use Illuminate\Database\Eloquent\Model; // Replace this class
use Jenssegers\Mongodb\Eloquent\Model; // To this class
use Laravel\Sanctum\Contracts\HasAbilities;
class PersonalAccessToken extends Model implements HasAbilities
{
// sanctum model
}
现在我可以在vendor
文件夹中执行此操作,但我认为这是不正确的方式。如何正确解决这个问题?
解决方案
您需要做的是创建一个自定义 PersonalAccessToken (您可以复制原始的“Laravel\Sanctum\PersonalAccessToken.php”)然后只需更改
use Illuminate\Database\Eloquent\Model
为了
use Jenssegers\Mongodb\Eloquent\Model
最后在 \Providers\AuthServiceProvider
您必须添加启动功能
public function boot()
{
$this->registerPolicies();
Sanctum::usePersonalAccessTokenModel(PersonalAccessToken::class);
}
推荐阅读
- python - 如何将json转换成csv
- python - 如何将更少的参数传递给python中的sql查询函数
- scala - 将大文件写入 S3 的最佳方法是什么?
- swiftui - SwiftUI:如何为 TabView 选择设置动画?
- javascript - 带有多个替换的 javascript .replace() 方法
- numpy - numpy:高效查找多维键的多维结果
- html - HTML背景音乐
- ios - 如何在 SwiftUI 中对列表中的值求和?
- ios - 如何在同一个tableview上显示来自json的两个不同数据
- git - REVISIT:如何在 msys2/mintty 中配置默认 shell?