我想为我的文章创建评论部分。我的逻辑是,文章有很多评论,用户(文章的读者)有很多评论。所以我做了一个有2个外键的表。
如果文章被删除->级联并删除评论。
如果用户被删除,我该如何保留对文章的评论?这是代码:
Schema::create('comments', function (Blueprint $table) {
$table->bigIncrements('id');
$table->text('body');
$table->unsignedBigInteger('article_id');
$table->unsignedBigInteger('user_id');
$table->timestamps();
$table->foreign('article_id')->references('id')->on('articles')->onDelete('cascade');
$table->foreign('user_id')->references('id')->on('users')->onDelete('**what do I write here?**');
});
Run Code Online (Sandbox Code Playgroud)
您必须将“user_id”列设置为可为空,以便当您从数据库中删除用户时可以将其设置为空。
$table->unsignedBigInteger('user_id')->nullable();
$table->foreign('user_id')->references('id')->on('users')->onDelete('set null');
Run Code Online (Sandbox Code Playgroud)
然后在你的前端你可以这样做:
$comment->user()->exists() ? $comment->user->username : 'Unknown User';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
184 次 |
| 最近记录: |