Как устранить эту ошибку.
SQLSTATE [23000]: нарушение ограничения целостности: 1452 Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполнено (kindmill_db
. device_tokens
,ОГРАНИЧЕНИЕ device_tokens_user_id_foreign
ИНОСТРАННЫЙ КЛЮЧ (user_id
) ССЫЛКИ users
(id
) НА УДАЛЕННЫЙ КАСКАД) (SQL: вставка в значения device_tokens
(deviceToken
, updated_at
, created_at
) (dqq37149351b3710139155ba81241dd2329191195191919)-04-10 06:35:31, 2019-04-10 06:35:31))
Я не знаю, зачем показывать эту ошибку, я не могу устранить эту ошибку.Вот мой код.Пожалуйста помоги.вот миграция базы данных
class CreateDeviceTokensTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('device_tokens', function (Blueprint $table) {
$table->bigInteger('id', true)->unsigned();
$table->bigInteger('user_id')->unsigned()->index('user_id');
$table->string('deviceToken');
$table->timestamps();
$table->foreign('user_id')
->references('id')
->on('users')
->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('device_tokens');
}
}
вот мой код контроллера
public function deviceToken(UpdateDeviceToken $request)
{
$user = JWTAuth::parseToken()->toUser();
// $deviceToken = DeviceToken::where('deviceToken', $deviceToken)->count();
// if($deviceToken == 0)
// {
// $user = $user->deviceTokens()->create(){
// 'deviceToken' = $request->input('deviceToken');
// }
// } else {
// }
$deviceToken = DeviceToken::updateOrCreate([
'deviceToken' => $request->input('deviceToken'),
],
[
'user_id' => $user->id,
'deviceToken' => $request->input('deviceToken'),
]);
return $user;
}