如何过滤雄辩的结果并保留一些特定的列(与关系)

时间:2015-04-17 03:31:26

标签: php orm eloquent laravel-5

我有这个雄辩的问题:

Person::with('mother','father')->find(1);

此结果输出:

[
    {
        id: "1",
        name: "John",
        mother_id: "4",
        father_id: "5"
        mother: {
            id: "4",
            name: "Sarah"
            mother_id: "10",
            father_id: "20"
        },
        father: {
            id: "5",
            name: "Tony",
            mother_id: "21",
            father_id: "32"
        }
    }
]

但我想得到这样的东西:

[
    {
        name: "John",
        mother: "Sarah",
        father: "Tony"
    }
]

使用Array和Collection方法实现此目的的最佳方法是什么?如果有一种方法可以通过Eloquent实现这一目标,那就更好了。

1 个答案:

答案 0 :(得分:0)

我在最近的一个项目上做了类似的事情,改编如下:

$person = Person::with('mother','father')->find(1);
$arrPerson = $person->toArray();
$arrPerson['mother'] = $person->mother->name;
$arrPerson['father'] = $person->father->name;

如果你只想要那些指示你可以扩展它以清除其他元素。