在更新时,Laravel外键可为空可以不为null

时间:2016-07-11 15:18:51

标签: laravel laravel-5 laravel-migrations

我在POST上创建了一个表-GAllERY_ID。这是一个可以为空的外键,默认为null。 当我创建POST时,如果我没有设置GALLERY_ID,它将为null。 但是如果我在GAllery上设置GALLERY_ID和引用,如果我再次尝试将其设为NULL(ON UPDATE),我就不能。

我确实喜欢迁移 -

UP -

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

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

DOWN -

$table->dropForeign(‘posts_gallery_id_foreign’);

Have a look on the image of my DB on PHP MY ADMIN

如果我继续PHP我的管理员我可以更新这个值,只需检查Gallery ID上的NULL,但是我的代码更新UPDATE,如果我这样设置 -

$post->gallery_id      =  Null;

会出现此错误:

  

SQLSTATE [23000]:完整性约束违规:1452无法添加或更新子行:外键约束失败...

因为我无法将一个外键设置为Update,只是在创建的方法上,如果我没有设置,它将为null,但是如果我设置了一个值并且在我尝试更改为NULL之后,我不能。

有人可以帮助我吗?

0 个答案:

没有答案