Внешний ключ Laravel обнуляемый не может быть нулевым на ОБНОВЛЕНИЕ

Я создаю таблицу - GAllERY_ID на POST. Это внешний ключ, обнуляемый и по умолчанию пустой. Когда я создаю POST, если я не установлю GALLERY_ID, он будет нулевым. Но если я установлю GALLERY_ID и ссылку на GAllery, после того, как я попытаюсь сделать этот NULL снова (ОБНОВЛЕНИЕ), я не смогу.

Я сделал это миграция -

UP -

$table->integer(‘gallery_id’)->unsigned()->nullable()->default(null);

$table->foreign(‘gallery_id’)->references(‘id’)->on(‘photo_gallery’);

ВНИЗ -

$table->dropForeign(‘posts_gallery_id_foreign’);

Посмотрите на изображение моей БД на PHP МОЙ АДМИН

Если я перейду на PHP моего администратора, я смогу обновить это значение, просто проверив NULL на идентификаторе галереи, НО в моем коде на UPDATE, если я установлю вот так -

$post->gallery_id      =  Null;

Это даст эту ошибку:

SQLSTATE [23000]: Нарушение ограничения целостности: 1452 Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполнено...

Поскольку я не могу установить нулевой внешний ключ для обновления, просто на созданном методе, если я не установлю, он будет нулевым, но если я установлю значение и после того, как я попытаюсь изменить его на NULL, я не смогу,

Кто-нибудь может мне помочь?

0 ответов

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