如何使用刀片在控制器中传递变量(laravel)

时间:2018-01-14 07:19:48

标签: php laravel templates blade

我试图使用刀片在php变量中进行操作。我将我的变量传递给我的视图,但是视图返回了我Undefined variable。我想知道正确的方法是什么。

我的控制器:

return view('pages.menu')->with([
    'someList' => $this->someList
]);

我的观点:

@foreach($someList as $item)
    @include('item.line', [
    'itemName' => $item->name,
    'itemValue' => $item->itemValue
])
@endforeach

1 个答案:

答案 0 :(得分:2)

修改 由于我不能删除,因为OP接受了答案,它现在只是基于文档的推测信息。根据消息来源,您的工作应该起作用:

https://github.com/laravel/framework/blob/v5.5.28/src/Illuminate/View/View.php#L177-L186

感谢@patricus指出这一点:

  

虽然文档可能不会显示它受支持,但您可以通过   with()方法中的数组。如果你这样做,那就是array_merged到   当前数据集。

原始答案:

来自文档https://laravel.com/docs/5.5/views#passing-data-to-views

您可以将一组数据传递给视图:

return view('greetings', ['name' => 'Victoria']);

以这种方式传递信息时,数据应该是具有键/值对的数组。 在视图中,您可以使用相应的键访问每个值,例如<?php echo $key; ?>

作为将完整数组数组传递给视图助手函数的替代方法,您可以使用with方法将单个数据添加到视图中:

return view('greeting')->with('name', 'Victoria');

所以根据文档,with可能不支持传递单个数组,所以你应该改变:

return view('pages.menu')->with([
    'someList' => $this->someList
]);

要:

return view('pages.menu')->with('someList', $this->someList);

或:

return view('pages.menu', [
    'someList' => $this->someList
]);