我有一个看起来像这样的刀片模板:
<div class="comment">
<div class="username"></div>
<div class="message"></div>
<div class="children">
</div>
</div>
我需要能够从函数中调用此视图并将数据插入其中。
我有一个类Helpers.php
,带有递归函数,如下所示:
function getComments(array $comments)
{
foreach ($comments as $comment)
{
echo $comment;
if (!empty($comment->children))
{
getComments($comment->children);
}
}
}
这意味着要打印一条评论,然后检查该评论是否有任何儿童评论,如果有评论则递归。
如何修改我的视图/功能以便我可以将数据发送到视图,这样我最终会得到这样的结果:
<div class="comment">
<div class="username">Username1</div>
<div class="message">Hello, world!</div>
<div class="children">
<div class="comment">
<div class="username">Username1</div>
<div class="message">Hello, world!</div>
<div class="children">
<div class="comment">
<div class="username">Username1</div>
<div class="message">Hello, world!</div>
<div class="children">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="comment">
<div class="username">Username1</div>
<div class="message">Hello, world!</div>
<div class="children">
</div>
</div>
谢谢!
答案 0 :(得分:2)
在这种特殊情况下,您不必使用函数。
要实现目标,请创建一个视图comments.blade.php
。根据您的Laravel版本和设置,您可以将其放入app/views
或resources/views
目录。
此文件的内容必须如下所示:
@foreach ($comments as $comment)
<div class="comment">
<div class="username">{{ $comment->username }}</div>
<div class="message">{{ $comment->message }}</div>
<div class="children">
@include('comments', ['comments' => $comment->children])
</div>
</div>
@endforeach
然后渲染此视图并传递您传递给getComments()
函数的相同参数。
这有望产生预期的效果。
祝你好运!答案 1 :(得分:0)
你可以发送数据来查看你可以使用的三种方法compact,with和session。当您重定向加载任何视图时可以使用紧凑或 - &gt; with(array());