Postman SQLSTATE[23000]:完整性约束冲突:1048列';可标记的_-id';不能为空
我想用拉威尔圣殿和2个模型 这是用户模型的代码Postman SQLSTATE[23000]:完整性约束冲突:1048列';可标记的_-id';不能为空,postman,laravel-7,laravel-sanctum,laravel-api,Postman,Laravel 7,Laravel Sanctum,Laravel Api,我想用拉威尔圣殿和2个模型 这是用户模型的代码 <?php namespace App; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Laravel\Sanctum\HasApiTokens; class User extends Auth
<?php namespace App;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens,Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'id', 'name', 'family','gender','birhday','national_code','email','mobile','profie_pic','province_code','city_code','address','username','role','status','password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token','role',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}
令牌是真的,所有带有中间件的路由('auth:sanctum')都是真的,但我希望使用模型nurces并编写此代码
第一:模范护士:
class Nurces extends model
{
use HasApiTokens,Notifiable;
protected $fillable = [
'name', 'family','gender','birhday','national_code','email','mobile','profie_pic','province_code','city_code','address','username','status','password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password','remember_token',
];
protected $primaryKey = 'nurces_id';
}
nurcescontroller中的功能登录为:
public function login(Request $request) {
$nurces= Nurces::where('email', $request->email)->first();
if (!$nurces || !Hash::check($request->password, $nurces->password)) {
return response([
'message' => ['These credentials do not match our records.']
], 404);
}
$token = $nurces->createToken('my-nurces-token-')->plainTextToken;
$response = [
'nurces' => $nurces,
'token' => $token
];
return response($response, 201);
}
使用邮递员并使用此地址登录时-此erorr:
"message": "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 (my-nurces-token-, fa55707e2bd9e1b71f8e5ebc0623f9ce1cc8e49f5b6e1ff804dda262e93811f4, [\"*\"], ?, App\\Nurces, 2020-07-05 11:18:58, 2020-07-05 11:18:58))",
我认为App\Nurces模型的主键不匹配 根据文档和错误,personal_access_tokens表的两列值如下:
- 可标记_类型-型号名称,例如 应用程序\模型\用户
- 可标记_id-模型的主键
我认为App\Nurces型号的主键不匹配 根据文档和错误,personal_access_tokens表的两列值如下:
- 可标记_类型-型号名称,例如 应用程序\模型\用户
- 可标记_id-模型的主键
列“tokenable\u id”不能为空:-因此,要么将值传递给它,要么使该列为NullColumn“tokenable\u id”不能为空:-因此要么将值传递给它,要么使该列为null
"message": "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 (my-nurces-token-, fa55707e2bd9e1b71f8e5ebc0623f9ce1cc8e49f5b6e1ff804dda262e93811f4, [\"*\"], ?, App\\Nurces, 2020-07-05 11:18:58, 2020-07-05 11:18:58))",