保持用户对评论删除Laravel的评论

时间:2020-01-24 23:58:46

标签: laravel

我想为我的文章创建评论部分。 我的逻辑是,文章有很多评论,而用户(文章的读者)有很多评论。 所以我做了一张有2个外键的表。

如果文章已删除->级联并删除评论。

如果删除用户,我该如何保留对文章的评论?这是代码:

_select_value

2 个答案:

答案 0 :(得分:3)

您必须将“ user_id”列设置为可为空,以便从数据库中删除用户时,可以将其设置为null。

$table->unsignedBigInteger('user_id')->nullable();
$table->foreign('user_id')->references('id')->on('users')->onDelete('set null');

然后在前端可以执行以下操作:

$comment->user()->exists() ? $comment->user->username : 'Unknown User';

答案 1 :(得分:0)

只需在模型上添加SoftDeletes

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Flight extends Model
{
    use SoftDeletes;

    /**
     * The attributes that should be mutated to dates.
     *
     * @var array
     */
    protected $dates = ['deleted_at'];
}

https://laravel.com/docs/5.7/eloquent#soft-deleting