Laravel雄辩的加入 [英] Laravel Eloquent Join
问题描述
我有两个表,我想加入它们.我看过其他示例,只是想不通.
I have two tables and I want to join them. I have looked at other examples and just can't figure it out.
我的表格如下.
- 俱乐部
- id
- 名称
- Clubs
- id
- name
- id
- club_id
- 名称
俱乐部有很多成员
成员属于俱乐部A club has many members
A member belongs to a club我可以列出我的俱乐部,列出我的俱乐部之后,我可以列出该俱乐部的成员,但是我要列出的是所有成员并显示他们的俱乐部.所以我的输出是ID,名称,俱乐部名称
I can list my clubs and after listing my clubs i can list the members of the club ok, but what I want to do is list all my members and show their club. So my output would be ID, Name, Club Name
到目前为止,这是我的代码设置
This is my code setup so far
// clubs controller public function index() { $clubs = Club::all(); return View::make('clubs.list')->with('clubs', $clubs); } public function show($id) { $club = Club::findOrFail($id); $members = $club->Members()->get(); return View:: make('clubs.show')->with('club', $club)->('members', $members); } // club model class Club extends Eloquent { // each club has many members public function Members() { return $this->hasMany('Member'); } } // members controller public function index() { $members = Member::all(); return View::make('members.list')->with('members', $members); } // member model class Member extends Eloquent { // each member belongs to one club public function club() { return $this->belongsTo('Club'); } }
推荐答案
在您的
Member
模型中声明以下关系方法:In your
Member
model declare the following relationship method:public function club() { return $this->belongsTo('Club'); }
因此,现在您可以使用以下方式查询所有成员及其
Club
信息:So now you can query all members with their
Club
info as:$members = Member::with('club')->get();
在您的
View
中,当循环Members
时,您可以尝试执行以下操作:In your
View
when looping theMembers
you may try something like this:@foreach($members as $member) {{ $member->name }} {{ $member->club->name }} @endforeach
这不是
Eloquent Join
,但是使用它的关系技术,您可以如上所述进行操作,如果您想加入,则可以尝试如下操作:This is not
Eloquent Join
but using it's relationship technique you may do it as given above, if you want to join then you may try something like this:$members = Member::join('clubs', 'members.club_id', '=', 'clubs.id') ->select('members.*', 'clubs.name as club_name') ->get();
在这种情况下,您可以像这样循环并使用
Club
信息;In this case, you may loop and use the
Club
info like this;@foreach($members as $member) {{ $member->name }} {{ $member->club_name }} @endforeach
这篇关于Laravel雄辩的加入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!