我创建了具有OneToMany关系的表。两个表格为Malls
和Shops
。每个Mall
可以包含多个Shop
但问题是每个Shop
不一定属于Mall
。它可以是一个独立的商店。
当我致电App\Shop::first()->mall
时,如果商店不属于Mall
,它会返回null
还是会引发异常或错误?
Eloquent怎么可能?
答案 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而不是错误。