在Laravel中设置OneToMany关系,但有例外

时间:2017-02-14 10:54:55

标签: php laravel laravel-5 eloquent one-to-many

我创建了具有OneToMany关系的表。两个表格为MallsShops。每个Mall可以包含多个Shop但问题是每个Shop不一定属于Mall。它可以是一个独立的商店。

当我致电App\Shop::first()->mall时,如果商店不属于Mall,它会返回null还是会引发异常或错误?

Eloquent怎么可能?

2 个答案:

答案 0 :(得分:1)

当您访问 App \ Shop :: first() - > mall 时,Eloquent会尝试使用 mall_id中存储的值加载相关的商城模型商店属性。如果它包含值,则加载相关对象(如果存在)。如果不是,则返回 NULL 。如果它不包含任何值,则会再次返回 NULL ,因为不能存在具有此ID的相关记录。

答案 1 :(得分:1)

让我们了解您的情况,您有购物中心模型和商店模型。 One Mall可能有多个商店,而Shop可能属于或不属于商城

以下是Mall Model

的代码
public function shop() {
   return $this->hasMany(Shop::class);
}

以下是Shop Model

的代码
public function mall(){
  return $this->belongsTo(Mall::class);
}

这将满足您的要求。每当商店不属于任何商场时,它将返回null而不是错误。

相关问题