【问题标题】:Sending data from function to view template?从函数发送数据到视图模板?
【发布时间】:2015-09-14 10:49:03
【问题描述】:

我有一个看起来像这样的刀片模板:

<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);
        }
    }
}

这样做的目的是打印出一条评论,然后检查该评论是否有任何子 cmets,如果有则递归。

如何修改我的视图/函数,以便我可以将数据发送到视图,这样我最终会得到这样的结果:

<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>

谢谢!

【问题讨论】:

    标签: laravel laravel-4 laravel-5 blade


    【解决方案1】:

    在这种特殊情况下,您不必使用函数。

    要实现您的目标,请创建一个视图 comments.blade.php。根据您的 Laravel 版本和设置,您可以将其放入 app/viewsresources/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()函数的参数传递给你。

    这有望得到预期的结果。

    祝你好运!

    【讨论】:

      【解决方案2】:

      您可以通过compact、with和session三种方法将数据发送到您可以使用的函数中查看。当您重定向加载任何可以使用 compact 或 ->with(array()) 的视图时,使用 with 方法进行压缩;

      【讨论】:

        猜你喜欢
        • 2013-01-21
        • 2012-09-24
        • 1970-01-01
        • 1970-01-01
        • 2019-01-08
        • 1970-01-01
        • 1970-01-01
        • 2012-06-08
        • 1970-01-01
        相关资源
        最近更新 更多