我喜欢将数据传递到Laravel中的视图的方式。但我不使用“with”方法,我更喜欢将所有数据作为视图辅助函数中的第二个参数传递:
$data = [
'name' => Auth::User() -> name
]
return view('dashboard', $data);
现在,在视图中使用我的数据非常容易:
Hello {{ $name }}
没有必要这样做
Hello {{ $data['name'] }}
但这是我的问题:
我想在视图作曲家中做同样的事情。但是我看到用视图作曲家将数据传递给视图的唯一方法是:
public function compose(View $view)
{
$data = [
'name' => Auth::User() -> name
]
$view -> with('data', $data);
}
但这需要我做
Hello {{ $data['name'] }}
在我看来,我不想要。我想使用短语法。那么有没有办法像我上面描述的那样传递它?作为视图函数的第二个参数?
由于
答案 0 :(得分:3)
只需使用glUniform3fv
循环遍历数组的每个部分:
foreach
答案 1 :(得分:2)
在回答您关于仅将view
函数称为传递值的问题时,答案是否定的,您不能这样做。
想想你在第一个例子中做了什么。当你调用view('template', $data)
时,你正在调用Laravel核心中定义的辅助函数。这个功能在做什么?它可能通过调用View::make()->with()
来实例化一个视图。换句话说,在幕后,它正在做你想要避免的事情。
现在,如何使用视图编辑器?我想它会是这样的:
在您的控制器中,您拨打view('template', $somedata)
。
您现在拥有一个包含$somedata
的视图对象。
在渲染HTML页面的过程中,Laravel会调用您的视图编辑器,并传递您刚刚创建的视图对象。
然后你调用view($newdata)
(或类似的东西 - 我不清楚语法是什么),它会将新数据附加到现有的视图对象。但这不是Laravel开发人员所做的事情。这并不是说它无法完成,它只是不是他们考虑的用例。
您可以做的是在视图编辑器中逐步执行新数据,并将各个值添加到现有视图中,如下所示:
foreach ($newdata as $key => $value) {
$view->with($key, $value);
}