【问题标题】:Laravel 5:Pass Multiple Array From Controller to ViewLaravel 5:将多个数组从控制器传递到视图
【发布时间】:2015-06-18 17:14:16
【问题描述】:

我刚开始从 Symfony 转移到 Laravel 5,我想知道如何将多个数组从我的控制器传递到我的视图。

我正在尝试使用 PHP 的 compact() 函数,但无法在视图中正确获取它们。

$users = Users::all();
$projects = Projects::all();
$foods = Foods::all();

return ('controller.view', compact('users','projects','foods'));

能够将所有这些对象数组转移到我的视图中对我来说最好的方法是什么。

任何帮助将不胜感激。

谢谢!

【问题讨论】:

    标签: laravel-5


    【解决方案1】:

    您的示例中缺少对视图方法的调用

    return view('controller.view', compact('users','projects','foods'));
    

    也就是说,其余的语法是正确的。

    在您看来,您可以像往常一样访问这些变量。例如,如果您使用刀片。

    resources/views/controller/view.blade.php

    @foreach ($users as $user)
        {{$user->property}}
    @endforeach
    

    如果您不使用刀片。

    resources/views/controller/view.php

    <?php
    foreach ($users as $user) {
        echo $user->property;
    }
    ?>
    

    【讨论】:

    • 抱歉,我在发原始帖子时有错字。我的代码中有 return view() 但由于某种原因紧凑失败了。
    【解决方案2】:

    我找到了问题的答案。

    return view('controller.view', array('users' => $users,
                   'projects' => $projects ,'foods' => $foods)
    

    在刀片中,我通常只是通过 foreach 迭代访问它们。

    【讨论】:

    • 嗨,Ben 感谢您的快速而有见地的回复。不幸的是,由于某种原因,compact() 函数在视图上失败了。我也确信它应该能够处理它。通过数组传递变量对我有用。
    猜你喜欢
    • 2018-06-11
    • 1970-01-01
    • 2016-01-21
    • 2015-08-13
    • 1970-01-01
    • 2017-05-25
    • 2018-10-29
    • 2017-01-29
    • 1970-01-01
    相关资源
    最近更新 更多