我试图使用刀片在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
答案 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
]);