Нарушение ограничения целостности laravel 9

Я использую Laravel 9 для настройки своих миграций, но я продолжаю получать эту ошибку Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails Я просмотрел это и очень запутался, так как мой user_id в URL-адресах таблицы ссылается на столбец id в таблице пользователей?

Я также позаботился о том, чтобы в моей модели url.php была защищена заполняемость для user_id, которую я рассматривал как ответ на аналогичный вопрос.

public function up()
    {
        Schema::create('urls', function (Blueprint $table) {
            $table->id();
            $table->text('full_url');
            $table->string('short_url')->unique();
            $table->foreignId('user_id')->constrained();
            $table->timestamps();
        });
    }
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

поделитесь изображением вашей папки миграции. выполняется ли ваша urls миграция до users миграции?

Akhzar Javed 17.05.2022 13:42

Нет, миграция моих пользователей — первая, а миграция URL — последняя.

Bethany Jane 17.05.2022 13:45

попробуйте это $table->foreignId('user_id')->nullable()->constrained(); сделать внешний ключ обнуляемым

Akhzar Javed 17.05.2022 13:48
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
3
22
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ограничения внешнего ключа являются одним из механизмов, используемых для обеспечения целостности данных. В данном случае это означает, что внешний ключ, который вы собираетесь вставить, должен иметь соответствие в соответствующей внешней таблице.

Позвольте мне привести пример. Допустим, у вас есть таблица сообщений с внешним ключом user_id. Затем в вашей таблице users у вас есть следующие идентификаторы: 1, 2, 3 и 4. Если вы попытаетесь вставить/обновить сообщение, указанный user_id должен существовать в таблице users. Это означает, что если вы попытаетесь вставить новый пост, который имеет user_id из 7, это не удастся, потому что в таблице id нет 7 из users.

Спасибо, это было очень полезно, я добавил запись в свою базу данных с user_id из 1, а затем попробовал еще раз, и это сработало.

Bethany Jane 17.05.2022 13:56

Другие вопросы по теме