Php 将数据传递到视图时不使用“引用”;带();看作曲家
我喜欢在Laravel中将数据传递给视图的方式。但我不使用“with”方法,我更喜欢将所有数据作为view helper函数中的第二个参数传递:Php 将数据传递到视图时不使用“引用”;带();看作曲家,php,laravel,laravel-5,Php,Laravel,Laravel 5,我喜欢在Laravel中将数据传递给视图的方式。但我不使用“with”方法,我更喜欢将所有数据作为view helper函数中的第二个参数传递: $data = [ 'name' => Auth::User() -> name ] return view('dashboard', $data); 现在,在视图中使用我的数据非常容易: Hello {{ $name }} 没必要这么做 Hello {{ $data['name'] }} 但我的问题是: 我想在视图生成器
$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'] }}
在我看来,这是我不想要的。我想使用简短的语法。那么有没有一种方法可以像我上面描述的那样通过它呢?作为view函数的第二个参数
谢谢只需使用
foreach
循环逐步完成阵列的每个部分:
foreach($data as $key => $value) { $view->with($key, $value); }
只需使用
foreach
循环逐步遍历阵列的每个部分:
foreach($data as $key => $value) { $view->with($key, $value); }
在回答您关于只调用
视图
函数传递值的问题时,答案是否定的,您不能这样做
想想你在第一个例子中做了什么。当您调用view('template',$data)
时,您正在调用在Laravel核心中定义的帮助函数。这个函数在做什么?它正在实例化一个视图,可能是通过调用view::make()->with()
。换句话说,它在幕后做着你想避免的事情
现在,如何使用视图生成器?我想会是这样的:
foreach ($newdata as $key => $value) {
$view->with($key, $value);
}
在控制器中,调用view('template',$somedata)
现在您有了一个包含$somedata
的视图对象
在呈现HTML页面的过程中,Laravel调用视图生成器,传递刚才创建的视图对象
然后调用view($newdata)
(或者类似的东西-我不清楚语法是什么),它会将新数据附加到现有的视图对象。但这并不是Laravel开发人员所做的事情。这并不是说它不可能实现,只是他们没有考虑过这个用例
您可以在view composer中逐步浏览新数据,并将各个值添加到现有视图中,如下所示:
foreach ($newdata as $key => $value) {
$view->with($key, $value);
}
在回答您关于只调用
视图
函数传递值的问题时,答案是否定的,您不能这样做
想想你在第一个例子中做了什么。当您调用view('template',$data)
时,您正在调用在Laravel核心中定义的帮助函数。这个函数在做什么?它正在实例化一个视图,可能是通过调用view::make()->with()
。换句话说,它在幕后做着你想避免的事情
现在,如何使用视图生成器?我想会是这样的:
foreach ($newdata as $key => $value) {
$view->with($key, $value);
}
在控制器中,调用view('template',$somedata)
现在您有了一个包含$somedata
的视图对象
在呈现HTML页面的过程中,Laravel调用视图生成器,传递刚才创建的视图对象
然后调用view($newdata)
(或者类似的东西-我不清楚语法是什么),它会将新数据附加到现有的视图对象。但这并不是Laravel开发人员所做的事情。这并不是说它不可能实现,只是他们没有考虑过这个用例
您可以在view composer中逐步浏览新数据,并将各个值添加到现有视图中,如下所示:
foreach ($newdata as $key => $value) {
$view->with($key, $value);
}