有三个实体:
问题描述:员工可以参与许多项目,每个项目都有一份工作。我希望能够访问某个员工的所有项目和您的工作。
我不确定,但关系必须看起来像三元:
物理表尚未定义。所以,可以自由设计(最基本的)它们。
我的问题:
如何使用Laravel Eloquent Relationships构建?
答案 0 :(得分:2)
基本上你的四张桌子就像是:
<强>雇员强>
<强>项目强>
<强>外水强>
<强> employee_project 强>
你可以用2对2关系分割问题:
class Employee extends Model{
public function projects(){
return $this->belongsToMany("Project")
}
// Second relation is Optional in this case
public function employments(){
return $this->belongsToMany("Employment", 'employee_project')
}
}
项目模型
class Project extends Model{
public function employees(){
return $this->belongsToMany("Employee")
}
// Second relation is Optional in this case
public function employments(){
return $this->belongsToMany("Employment",'employee_project')
}
}
就业模式
class Employment extends Model{
public function employees(){
return $this->belongsToMany("Employee")
}
public function projects(){
return $this->belongsToMany("Project")
}
}
此时在您的控制器中您可以管理您的关系,例如,如果您想要添加到$ employee,ID为1且项目为id 2的项目您可以简单地
$employee->projects()->attach([1 => ['employment_id' => '2']]);
我希望这回答你的问题。
如果您需要在数据透视表中添加时间戳,请在您的关系中添加 - &gt; withTimesetamps()。
答案 1 :(得分:-2)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table id="myTable">
<tr id="row1">
<td></td>
</tr>
<tr id="row2">
<td></td>
</tr>
</table>
有Employee
Employment
有Employment