laravel - Laravel 5:获取具有不同id的关系模型
问题描述
我有一份模范合同和一名模范会员。每个合约都有一个主成员,但可以有一个子成员。
因此,我的表合约有一个 member_id 和一个 subMember_id。获取主成员 (member_id) 没有问题,但是如何获取具有 subMember_id 的第二个成员?
感谢帮助 ...
类合同:
class Contract extends Model
{
public function members()
{
return $this->hasMany('App\Member');
}
public function getMember($id)
{
$contract = Contract::find($id);
foreach($contract->members as $member) {
return $member->name;
}
}
public function getSubMember($id)
{
$contract = Contract::find($id);
$primaryKey = 'subMember_id';
foreach($contract->members::with('subMember_id')->get() as $member) {
return $member->name;
}
}
}
班级成员:
class Member extends Model
{
public function contracts(){
return $this->belongsToMany('App\Contract');
}
...
}
解决方案
您可以根据 Contract 中的 submember_id 主键在 Contract 和 Member 之间建立关系。
在类合同
protected function SubMember(){
return $this->hasMany('App\Member','Member_id ','SubMember_id ');
}
之后你可以使用这个
$contract = Contract::find($someID);
$subMemeberId = $contract->SubMember->Member_id;
推荐阅读
- oracle - Oracle APEX 和在数字字段上搜索 IG
- javascript - 在 HTML 文件中为 JavaScript 文件提供路径时出现问题
- r - 如何转置列表的每个向量为它们分配一个唯一的数字,并将它们绑定在 r 中?
- python - 如何使用正则表达式语法从给定列中的文本中删除“省略号”?
- haskell - scanl1 真的是局部的吗?
- python - 使用 python 仅在特定时间间隔获取 CSV 数据
- php - 如何从底部轴上的 mysql 正确获取时间序列数据
- arrays - JSON格式的MongoDB查询问题没有返回结果
- azure - 有没有办法将所有最后插入的性能计数器按机器分组在一行中?
- php - 如何创建多个 ChoiceType - Symfony 中的行