我正在审核此$people = Person::with('children')->get();
之类的模型,这会返回dd($people);
Collection {#322 ▼
#items: array:4 [▼
0 => Person {#311 ▶}
#relations: array:1 [▼
"children" => Collection {#320 ▼
#items: array:2 [▼
0 => Child {#323 ▶}
1 => Child {#324 ▶}
1 => Person {#312 ▶}
2 => Person {#313 ▶}
#relations: array:1 [▼
"children" => Collection {#320 ▼
#items: array:2 [▼
0 => Child {#323 ▶}
3 => Person {#314 ▶}
但是现在我正在尝试将其导出为excel(Maatwebsite/Laravel-Excel with view)但我需要像这样(他们的父母下的孩子),例如:
Collection {#322 ▼
#items: array:6 [▼
0 => Person {#311 ▶} // Parent 1
1 => Child {#312 ▶} // Child of parent 1
2 => Child {#313 ▶} // Child of parent 1
3 => Person {#314 ▶} // Parent 2 - Single (no relation)
4 => Person {#315 ▶} // Parent 3
5 => Child {#316 ▶} // Child of parent 3
6 => Person {#314 ▶} // Parent 4 - Single (no relation)
我不确定如何做到这一点(Eloquent或Query Builder)?
答案 0 :(得分:1)
我没有尝试,但是这样的事情会起作用我想:
$c = collect([]);
foreach($people as $person)
{
$children = $person->children;
$c->add($person);
if(count($children) > 0)
{
foreach($children as $child)
{
$c->add($child);
}
}
}
dd($c);