我有一个看起来像这样的 Blade 模板:
<div class="comment">
<div class="username"></div>
<div class="message"></div>
<div class="children">
</div>
</div>
我需要能够从函数调用此 View 并向其中插入数据。
我有一个类 Helpers.php
,它的递归函数如下所示:
function getComments(array $comments)
{
foreach ($comments as $comment)
{
echo $comment;
if (!empty($comment->children))
{
getComments($comment->children);
}
}
}
这的目的是打印出一条评论,然后检查该评论是否有任何子评论,如果有则递归。
如何修改我的 View /函数,以便可以将数据发送到 View ,这样我最终会得到如下结果:
<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>
谢谢!
最佳答案
在这种特殊情况下,您不必使用函数。
要实现您的目标,请创建一个 View 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
然后渲染此 View 并将您传递给 getComments()
函数的相同参数传递给您。
这有望达到预期的结果。
祝你好运!
关于laravel - 从函数发送数据到 View 模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31090850/