laravel 创建令牌的气闸问题:'tokenable_id' 不能为空
laravel airlock issue with creating tokens: 'tokenable_id' cannot be null
已升级到 Laravel 7 并已安装 Laravel/Airlock。
按照安装说明尝试创建令牌时出现错误
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'tokenable_id' cannot be null (SQL: insert into personal_access_tokens
(name
, token
, abilities
, tokenable_id
, tokenable_type
, updated_at
, created_at
) values (api-token, 31afd4da089878bd2cd562264bd2d8c789c7a1f91e47f6c3969bce2fc19a7329, ["order:create","order:view","WLR3:check_availability"], ?, App\Models\User, 2020-03-06 10:44:05, 2020-03-06 10:44:05))
在我的 TokenController.php 我有:
public function create(User $user, Request $request)
{
$token_name = $request->input('token_name', 'api-token');
$abilities = $request->input('abilities', [
'order:create',
'order:view',
'WLR3:check_availability'
]);
$token = $user->createToken($token_name, $abilities);
return $this->view($user, $request);
}
我错过了什么可能导致此错误的原因?
在用户模型上它以:
use Laravel\Airlock\HasApiTokens;
class User extends Authenticatable /* implements MustVerifyEmail */
{
use HasRoles, HasApiTokens, Notifiable;
protected $guard_name = 'web';
菜鸟错误...似乎在依赖注入上创建的 $user 不是有效的。
我需要补充:
$user = Auth::user();
到 create 方法,所以它现在读作:
public function create(Request $request)
{
$user = Auth::user();
$token_name = $request->input('token_name', 'api-token');
$abilities = $request->input('abilities', [
'order:create',
'order:view',
'WLR3:check_availability'
]);
$token = $user->createToken($token_name, $abilities);
return $this->view($user, $request);
}
现在可以使用了!
已升级到 Laravel 7 并已安装 Laravel/Airlock。
按照安装说明尝试创建令牌时出现错误
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'tokenable_id' cannot be null (SQL: insert into
personal_access_tokens
(name
,token
,abilities
,tokenable_id
,tokenable_type
,updated_at
,created_at
) values (api-token, 31afd4da089878bd2cd562264bd2d8c789c7a1f91e47f6c3969bce2fc19a7329, ["order:create","order:view","WLR3:check_availability"], ?, App\Models\User, 2020-03-06 10:44:05, 2020-03-06 10:44:05))
在我的 TokenController.php 我有:
public function create(User $user, Request $request)
{
$token_name = $request->input('token_name', 'api-token');
$abilities = $request->input('abilities', [
'order:create',
'order:view',
'WLR3:check_availability'
]);
$token = $user->createToken($token_name, $abilities);
return $this->view($user, $request);
}
我错过了什么可能导致此错误的原因?
在用户模型上它以:
use Laravel\Airlock\HasApiTokens;
class User extends Authenticatable /* implements MustVerifyEmail */
{
use HasRoles, HasApiTokens, Notifiable;
protected $guard_name = 'web';
菜鸟错误...似乎在依赖注入上创建的 $user 不是有效的。
我需要补充:
$user = Auth::user();
到 create 方法,所以它现在读作:
public function create(Request $request)
{
$user = Auth::user();
$token_name = $request->input('token_name', 'api-token');
$abilities = $request->input('abilities', [
'order:create',
'order:view',
'WLR3:check_availability'
]);
$token = $user->createToken($token_name, $abilities);
return $this->view($user, $request);
}
现在可以使用了!