Laravel 在属性函数中引用它时追加子项
Laravel appends child when referencing it in attribute function
在laravel8.x。我试图在 getSeomthingAttribute() 方法中从相关模型访问数据。假设我想要一个包含所有孙子名字的数组,我的代码如下所示:
public function getGrandChildrenNamesAttribute() {
$names = [];
foreach ($this->child->children as $grandChild) {
array_push($names, $grandChild->name);
}
return $names;
}
现在,当我将 grandChildrenNames 属性附加到模型时,它还会附加整个 $child 属性。我像这样附加属性:
return Parent::find($id)->append('grand_children_names');
和returns像这样:
{
name: "some name",
age: 21,
grand_children_names: [
"name 1",
"name 2",
etc...
],
child: {
name: "child name"
etc...
},
}
如何在不附加 $child
的情况下附加 grand_children_names
?
我完全忘记了makeHidden()
。
那是我的解决方案。我在调用父模型时做了以下操作:
return Parent::find($id)->append('grand_children_names')->makeHidden('child');
在laravel8.x。我试图在 getSeomthingAttribute() 方法中从相关模型访问数据。假设我想要一个包含所有孙子名字的数组,我的代码如下所示:
public function getGrandChildrenNamesAttribute() {
$names = [];
foreach ($this->child->children as $grandChild) {
array_push($names, $grandChild->name);
}
return $names;
}
现在,当我将 grandChildrenNames 属性附加到模型时,它还会附加整个 $child 属性。我像这样附加属性:
return Parent::find($id)->append('grand_children_names');
和returns像这样:
{
name: "some name",
age: 21,
grand_children_names: [
"name 1",
"name 2",
etc...
],
child: {
name: "child name"
etc...
},
}
如何在不附加 $child
的情况下附加 grand_children_names
?
我完全忘记了makeHidden()
。
那是我的解决方案。我在调用父模型时做了以下操作:
return Parent::find($id)->append('grand_children_names')->makeHidden('child');