Laravel多重关系

时间:2014-07-09 12:48:59

标签: php laravel eloquent relationships

我试图了解Laravel模型之间的某些关系。

我想定义以下模型之间的关系:
用户 - 用户
广告系列 - 广告系列 通话 - 打个电话
领导 - 客户/ 销售 - 销售
预约 - 预定的电话
这就是关系的方式:

可以将用户分配到多个广告系列。
用户可以拨打多个电话 一个用户可以有很多约会 一个电话属于一个用户 一个电话属于一个广告系列 广告系列可以有很多来电 一个活动可以有很多销售 可以为多个广告系列分配潜在客户。
一个铅可以有很多销售 一个广告系列中的一个用户属于一个用户 一个领导可以有很多电话 一次销售属于一个活动
一次销售属于一个用户
一个约会属于一个领导。

我不确定如何建立关系。它很容易与一对一或多对一。
但是这个怎么样:
呼叫 - >用户(一对一)
呼叫 - >广告系列(一对一)
广告系列 - >致电(一对多)
用户 - >呼叫(一对多)


希望我设法解释清楚。感谢。

1 个答案:

答案 0 :(得分:0)

我建议您再次阅读Laravel docs on relationships

以呼叫/用户关系为例,以下是您正在查看的内容:

User  --------> Call
(one)           (many)

这显然是一对多的关系。如果你想根据一个雄辩的模型建立这种关系的两个方面,那么关系是这样的:

A User hasMany Calls

A Call belongsTo a User

这些条款直接取自文档中标题为 One To Many 的部分。

所以,在代码......

用户模型

public function Calls()
{
    $this->hasMany("Call");
}

(请注意,我已将方法名称复数形式 - 这是我自己的偏好,因为使用$user->Calls将返回项目集合。

通话模型

public function User()
{
    $this->belongsTo("User");
}

不要像你在分析中所做的那样孤立地处理一段关系的双方,而是同时考虑关系的双方