Laravel Sanctum 自定义模型在执行 createToken 时抛出未知列
Laravel Sanctum custom model throwing unkown column when exectuting createToken
我正在使用 Laravel Sanctum 并自定义了模型(遵循此处的配置:https://laravel.com/docs/9.x/sanctum#overriding-default-models)。
目前我的模型结构如下:
id
tenant_id
name
token
abilities
last_used_at
created_at
updated_at
deleted_at (softdeletes)
当我尝试创建令牌 $user->createToken('test') 时出现错误:
'field list' 中的未知列 'tokenable_id'(也就是 'tokenable_type'),即。它正在尝试使用开箱即用的实现来生成令牌。
什么是最好的(最干净的)方法来让它工作。我基于基于帐户的令牌而不是基于用户的令牌来使用它。
谢谢
Sanctum 允许您开箱即用地在任何模型上定义令牌。如果你有一个 TenantModel,你可以只包含 trait
class TenantModel extends Model
{
use HasApiTokens;
...
那你可以做
$tenant->createToken('test')
并使用令牌租户 returns 你。基本上您不需要为您的用例修改基础模型。
您也可以稍后将 HasApiTokens 添加到其他模型,不会有任何问题,相同的标记 table 将通过利用可变形列来使用。
我正在使用 Laravel Sanctum 并自定义了模型(遵循此处的配置:https://laravel.com/docs/9.x/sanctum#overriding-default-models)。
目前我的模型结构如下:
id
tenant_id
name
token
abilities
last_used_at
created_at
updated_at
deleted_at (softdeletes)
当我尝试创建令牌 $user->createToken('test') 时出现错误:
'field list' 中的未知列 'tokenable_id'(也就是 'tokenable_type'),即。它正在尝试使用开箱即用的实现来生成令牌。
什么是最好的(最干净的)方法来让它工作。我基于基于帐户的令牌而不是基于用户的令牌来使用它。
谢谢
Sanctum 允许您开箱即用地在任何模型上定义令牌。如果你有一个 TenantModel,你可以只包含 trait
class TenantModel extends Model
{
use HasApiTokens;
...
那你可以做
$tenant->createToken('test')
并使用令牌租户 returns 你。基本上您不需要为您的用例修改基础模型。
您也可以稍后将 HasApiTokens 添加到其他模型,不会有任何问题,相同的标记 table 将通过利用可变形列来使用。