我有一个问题,我试图获取一个对象的所有后代并只保留那些具有特定属性的后代。
我有这些关系:
public function getChildren()
{
return $this->hasMany(self::class, 'parent_id', 'id');
}
public function allChildren()
{
return $this->getChildren()->with('allChildren');
}
例如,我得到这种类型的数组:
$array = [
0 => ['name' => 'aaa', 'type' => 0, 'parent' => null, 'children' => [
1 => ['name' => 'bbb', 'type' => 1, 'parent' => null, 'children' => []],
2 => ['name' => 'ccc', 'type' => 0, 'parent' => null, 'children' => [
3 => ['name' => 'ddd', 'type' => 1, 'parent' => 2, 'children' => []]
]]
]],
4 => ['name' => 'eee', 'type' => 0, 'parent' => null, 'children' => []]
];
对于此示例,我想删除所有属于的对象type 1并获得一个干净的数组,而没有这些对象。
我真的不明白为什么可以获得一个对象的所有后代但不能通过条件。
提前致谢。
慕侠2389804
临摹微笑