Heey所有我试图用Laravel建立一个拥有无尽孩子的树状结构。
这是我用来构建树的方法:
$result = '';
foreach($categories as $root) {
$result .= sprintf('
<tr>
<td>
<div class="radio">
<label>
<input type="radio" name="parent_id" id="" value="%d">
%s
</label>
</div>
</td>
</tr>', $root->id, $root->title
);
if(isset($root->children)) {
$this->getChildren($root->children, $result);
}
}
dd($result);
正如你所看到我在我的方法中引用另一种方法。 那个看起来像这样:
public function getChildren($children, $result)
{
foreach($children as $child) {
$result .= sprintf('
<tr>
<td>
<div class="radio">
<label>
<input type="radio" name="parent_id" id="" value="%d">
%s
</label>
</div>
</td>
</tr>', $child->id, $child->title
);
if(isset($child->children)) {
$this->getChildren($child->children, $result);
}
}
return $result;
}
然而,这只是回归我的主要结果..
如何将数据附加到$ result变量?
提前致谢!!
答案 0 :(得分:1)
将您的函数声明更改为:
public function getChildren($children, &$result)
&
符号表示您通过引用传递变量。
答案 1 :(得分:0)
不需要代码重复,只需:
$result = $this->getChildren($categories);
dd($result);
和
public function getChildren($children)
{
$result = '';
foreach($children as $child) {
$result .= sprintf('
<tr>
<td>
<div class="radio">
<label>
<input type="radio" name="parent_id" id="" value="%d">
%s
</label>
</div>
</td>
</tr>', $child->id, $child->title
);
if(isset($child->children)) {
$result .= $this->getChildren($child->children);
}
}
return $result;
}