我在一对多关系中有以下两个模型:分类.phppublic function post(){ return $this->hasMany('App\Category', 'category_id');}和Post.phppublic function category(){ return $this->belongsTo('App\Post', 'category_id');}我删除了下面几乎没有博客文章的类别。打开分类被删除的博文获取错误,因为该类别不再存在在不导致错误的情况下删除类别的最佳方法是什么?我应该在删除他们的类别时设置category_idof postnull吗?
2 回答
慕莱坞森
TA贡献1810条经验 获得超4个赞
也许这将是迟到的答案,但无论如何我都会回答谷歌搜索。
如果您不希望在删除项目上的模型时出现任何空错误,您可以处理数据库上的关系级联。将此代码写入您的项目表迁移。
$table->bigInteger('category_id')->unsigned();
$table->foreign('category_id')->references('id')
->on('categories')->onDelete('cascade');
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
使用withDefault如果任何类别不存在,它会给你空。
分类.php
public function post()
{
return $this->hasMany('App\Post', 'category_id')->withDefault();
}
后.php
public function category()
{
return $this->belongsTo('App\Category', 'category_id')->withDefault();
}
- 2 回答
- 0 关注
- 212 浏览
添加回答
举报
0/150
提交
取消