Php Laravel 5.2我如何显示同一行中有他/她的组的成员列表(一对多(或多对多)数据显示)
我刚接触Laravel,并通过MariaDB 10.0.xx学习Laravel 5.2 有几个表,但简而言之,“Member”可以有许多“Group”,我想显示成员的名字和姓氏,以及成员已加入同一行的组的名称 我没有任何明确的想法来实现这一点,但我正在尝试创建两个单独的查询($MemberList和$GroupList),并通过将第一个查询($MemberList)的主键输入到第二个查询($GroupList)来获取组列表 或者如果你有更好的主意,请告诉我 我希望显示如下Php Laravel 5.2我如何显示同一行中有他/她的组的成员列表(一对多(或多对多)数据显示),php,mysql,laravel,laravel-5,laravel-5.2,Php,Mysql,Laravel,Laravel 5,Laravel 5.2,我刚接触Laravel,并通过MariaDB 10.0.xx学习Laravel 5.2 有几个表,但简而言之,“Member”可以有许多“Group”,我想显示成员的名字和姓氏,以及成员已加入同一行的组的名称 我没有任何明确的想法来实现这一点,但我正在尝试创建两个单独的查询($MemberList和$GroupList),并通过将第一个查询($MemberList)的主键输入到第二个查询($GroupList)来获取组列表 或者如果你有更好的主意,请告诉我 我希望显示如下 first Name
first Name / Last Name / Groups
john Doe A group, B group
Jane Taylor B group
Nick Kay A group, B group, C group
@extends('masterLayOut')
<table>
<thead>
<th> First Name </th>
<th> Last Name </th>
<th> Groups </th>
</thead>
<tbody>
@foreach ($memberLists as $memberList)
<tr>
<td> {{ memberList->firstNm}}</td>
<td> {{ memberList->lastNm }}</td>
<td> {{ groupLists->groupNm }} </td>
</tr>
@endforeach
</tbody>
<table>
我的控制器
$memberLists = DB::table('Member')
->select('firstNm','lastNm')
->join('Center', 'Member.mbrCd', '=', 'Center.mbrCd')
->join('Org', 'Center.orgCd', '=', 'Org.orgCd');
$groupLists = DB::table('Group')
->select('groupNm')
->join('Center','Center.orgCd','=','Group.orgCd')
->join('GroupMember ','GroupMember.mbrCd','=','Center.mbrCd')
->where ('GroupMember.mbrCd',$Member_primaryKey_from_memberLists);
view return view('member.memberList')
->with('memberLists', $memberLists)
->with('groupLists',$groupLists);
//I'm selecting also member id (I don't know how you call it)
$memberLists = DB::table('Member')
->select('id', 'firstNm','lastNm')
->get();
$groupLists = DB::table('Group')
->select('groupNm', 'mbrCd')
->get();
$groups = [];
foreach($groupLists as $group) {
if (!isset($group[$group->mbrCd])) {
$group[$group->mbrCd] = [];
}
$group[$group->mbrCd][] = $group->groupNm;
}
return view('member.memberList')
->with('memberLists', $memberLists)
->with('groupLists', $groups);
这是我的观点
first Name / Last Name / Groups
john Doe A group, B group
Jane Taylor B group
Nick Kay A group, B group, C group
@extends('masterLayOut')
<table>
<thead>
<th> First Name </th>
<th> Last Name </th>
<th> Groups </th>
</thead>
<tbody>
@foreach ($memberLists as $memberList)
<tr>
<td> {{ memberList->firstNm}}</td>
<td> {{ memberList->lastNm }}</td>
<td> {{ groupLists->groupNm }} </td>
</tr>
@endforeach
</tbody>
<table>
@extends('masterLayOut'))
名字
姓
组
@foreach($memberList为$memberList)
{{memberList->firstNm}
{{memberList->lastNm}
{{grouplist->groupNm}
@endforeach
这就是为什么使用雄辩的模型而不是查询是好的例子。您可以通过快速加载在这些行中解决此问题
在您的示例中,您将首先对所有内容进行分组(我将省略所有连接,因为我不知道这里是否需要它):
控制器
$memberLists = DB::table('Member')
->select('firstNm','lastNm')
->join('Center', 'Member.mbrCd', '=', 'Center.mbrCd')
->join('Org', 'Center.orgCd', '=', 'Org.orgCd');
$groupLists = DB::table('Group')
->select('groupNm')
->join('Center','Center.orgCd','=','Group.orgCd')
->join('GroupMember ','GroupMember.mbrCd','=','Center.mbrCd')
->where ('GroupMember.mbrCd',$Member_primaryKey_from_memberLists);
view return view('member.memberList')
->with('memberLists', $memberLists)
->with('groupLists',$groupLists);
//I'm selecting also member id (I don't know how you call it)
$memberLists = DB::table('Member')
->select('id', 'firstNm','lastNm')
->get();
$groupLists = DB::table('Group')
->select('groupNm', 'mbrCd')
->get();
$groups = [];
foreach($groupLists as $group) {
if (!isset($group[$group->mbrCd])) {
$group[$group->mbrCd] = [];
}
$group[$group->mbrCd][] = $group->groupNm;
}
return view('member.memberList')
->with('memberLists', $memberLists)
->with('groupLists', $groups);
那么在你看来,
@extends('masterLayOut')
<table>
<thead>
<th> First Name </th>
<th> Last Name </th>
<th> Groups </th>
</thead>
<tbody>
@foreach ($memberLists as $memberList)
<tr>
<td> {{ memberList->firstNm}}</td>
<td> {{ memberList->lastNm }}</td>
<td> {{ isset($groups[$memberList->id]) ? implode(', ', $groups[$memberList->id]) : '' }} </td>
</tr>
@foreach
</tbody>
<table>
@extends('masterLayOut'))
名字
姓
组
@foreach($memberList为$memberList)
{{memberList->firstNm}
{{memberList->lastNm}
{{isset($groups[$memberList->id])?内爆(',',$groups[$memberList->id]):''}
@弗雷奇
这看起来不对。您假设$memberList->id
也是$groups
数组的索引,它永远不会是。它看起来不像是成员和组之间的一对多关系。似乎成员(带有mbrCd)只有一个组。请让我知道你的意见。