我在一對多關(guān)系中有以下兩個模型:分類.phppublic function post(){ return $this->hasMany('App\Category', 'category_id');}和Post.phppublic function category(){ return $this->belongsTo('App\Post', 'category_id');}我刪除了下面幾乎沒有博客文章的類別。打開分類被刪除的博文獲取錯誤,因為該類別不再存在在不導(dǎo)致錯誤的情況下刪除類別的最佳方法是什么?我應(yīng)該在刪除他們的類別時設(shè)置category_idof postnull嗎?
2 回答

慕萊塢森
TA貢獻(xiàn)1810條經(jīng)驗 獲得超4個贊
也許這將是遲到的答案,但無論如何我都會回答谷歌搜索。
如果您不希望在刪除項目上的模型時出現(xiàn)任何空錯誤,您可以處理數(shù)據(jù)庫上的關(guān)系級聯(lián)。將此代碼寫入您的項目表遷移。
$table->bigInteger('category_id')->unsigned();
$table->foreign('category_id')->references('id')
->on('categories')->onDelete('cascade');

尚方寶劍之說
TA貢獻(xiàn)1788條經(jīng)驗 獲得超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 關(guān)注
- 230 瀏覽
添加回答
舉報
0/150
提交
取消