[英]Join multiple tables,pivot table using Laravel relationship
下面是我的表慈善机构,其类型,成员,成员名称,现在我想要的结果是特定慈善机构的所有慈善成员及其名称和数组类型。
Charity
---------------------
id name |
---------------------
1 Xcharity |
2 ycharity |
---------------------
Charity_type
---------------------
id name |
---------------------
1 Masjid |
2 Mandir |
3 Madresha |
---------------------
Designations
---------------------
id name |
---------------------
1 Trusty |
2 President |
3 Member |
---------------------
Members
-----------------------------
id name charity_id |
-----------------------------
1 nilesh 1 |
2 Khyati 2 |
-----------------------------
Charitytype_designation_member
-----------------------------------------------------
charitytype_id designation_id member_id |
-----------------------------------------------------
1 1 1 |
2 2 1 |
2 3 2 |
-----------------------------------------------------
我想要的数组如下所示,慈善机构详细信息及其具有成员的成员来自于哪种慈善类型及其对特定慈善类型的指定。
Array
(
[id] => 1
[name] => Xcharity
[members] => Array
(
[0] => Array
(
[id] => 1
[name] => nilesh
[charity_id] => 2
[charity_type] => Masjid
[designation] => Trusty
)
)
)
您可以尝试这样的事情
$contracts = Charity::with(['members' => function($member_model) {
$member_model->select('Members.id', 'Members.name', 'Members.charity_id', 'Charity_type.name as charity_type', 'Designations.name as designation')
->join('Charitytype_designation_member', 'Charitytype_designation_member.member_id', '=', 'Members.id')
->join('Designations', 'Charitytype_designation_member.designation_id', '=', 'Designations.id')
->join('Charity_type', 'Charitytype_designation_member.charitytype_id ', '=', 'Charity_type.id');
}])->get();
我假设您的慈善模式中有members
关系。
希望对您有帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.