我们有以下
Manager
[id]
Companies
[id]
[manager_id] not nullable
Stores
[id]
[company_id]
[manager_id] *nullable*
我正在寻找每个商店经理的单一Eloquent关系。
有什么建议吗?
答案 0 :(得分:1)
以你的评论为基础@Sanjay S
class Store extends Model {
public function manager() {
return $this->belongsTo('App\Manager');
}
public function getManager() {
if (is_null($this->manager)) {
return $this->company()->manager;
} else {
return $this->manager;
}
然后当你调用$ store-> getManager()时,如果商店manager_id为空,你将得到公司经理
答案 1 :(得分:0)
您的问题不明确,因为您在商店表中的关系类似于 manager_id [nullable] ,并且您要求为经理提供单一的Eloquent关系每个商店都有。但是根据我的猜测,您的Eloquent模型应该看起来像这样
class Manager extends Model {
public function stores() {
return $this->hasMany(App\Store::class);
}
public function company() {
return $this->hasOne(App\Company::class);
}
}
公司类
class Company extends Model {
public function manager() {
return $this->belongsTo(App\Manager::class);
}
}
商店类
class Store extends Model {
public function manager() {
return $this->belongsTo(App\Manager::class);
}
}
希望此解决方案适合您。