严格来说,我知道这不是最佳实践,但是在Laravel中设置外键始终是一个巨大的痛苦。
像这样简单的事情可能在70%的时间内失败了。有时有充分的理由,有时只是……因为感觉就像那样。自然也没有有意义的错误消息。
Schema::table('accounts', function(Blueprint $table){
$table->integer('package_id')->unsigned();
$table->foreign('package_id')->references('id')->on('packages')->onDelete('set null');
});
现在,该应用程序完全可以正常运行,并且所有关系都可以正常运行,而无需在数据库中设置外键,因此完全忽略它们是否有任何实际危害?
答案 0 :(得分:3)
此Laravel语法$table->foreign('package_id')->references('id')->on('packages')->onDelete('set null')
有两个主要作用: