我正在用成员和组来构建应用程序,并且成员可以在组中。
使用 laravel 框架
我有以下型号:
class Group extends Model
{
protected $table = 'Groups';
public function GroupMembers()
{
return $this->belongsToMany('Member', 'GroupMembers', 'GroupId', 'MemberId');
}
}
class Member extends Model
{
protected $table = 'members';
protected static $rules = [
'Name' => 'unique:members'
];
public function Groups()
{
return $this->belongsToMany('Group', 'GroupMembers', 'MemberId', 'GroupId');
}
}
当我尝试让一个组的所有组成员都与以下人员联系时:
public function getIndex()
{
$member = Group::findOrFail(3);
//$member = Member::findOrFail(1);
//$results = $member;
$results = $member->GroupMembers;
dd(DB::getQueryLog());
dd($results);
//$results =GroupMember::getGroupMembers(1);
return View::make('hello')->with('results', $results);
}
我得到 0 个结果,因为它正在向查询添加为空:
select `members`.*
, `GroupMembers`.`GroupId` as `pivot_GroupId`
, `GroupMembers`.`MemberId` as `pivot_MemberId`
, `GroupMembers`.`created_at` as `pivot_created_at`
, `GroupMembers`.`updated_at` as `pivot_updated_at`
from
`members`
inner join
`GroupMembers` on `members`.`id` = `GroupMembers`.`MemberId`
where
`GroupMembers`.`GroupId` is null
这是从哪里来的,我该如何删除它?
我假设GroupId
和MembersId
是各自表的主键?
您需要定义任何不同于默认值 ( id
) 的主键列名称
将其添加到您的模型中
protected $primaryKey = 'GroupId';