繁体   English   中英

连接多个表,使用Laravel关系枢轴表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM