为了账号安全,请及时绑定邮箱和手机立即绑定

从一对多关系中删除 Laravel

从一对多关系中删除 Laravel

PHP
不负相思意 2022-01-02 19:53:10
我在一对多关系中有以下两个模型:分类.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');


查看完整回答
反对 回复 2022-01-02
?
尚方宝剑之说

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();

}


查看完整回答
反对 回复 2022-01-02
  • 2 回答
  • 0 关注
  • 212 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信