Laravel view()和with():向视图传递数据(附带实例)
在视图文件中并不能直接访问控制器中的变量,而是需要在控制器中为视图传递数据。使用 view() 函数或 with() 方法可以为视图传递数据,示例代码如下:
下面演示如何在控制器中向视图传递数据,具体步骤如下:
1) 在 TestController 的 show() 方法中准备一个数组,将其传给视图,具体代码如下:
2) 修改 resources\views\show.blade.php 视图文件,输出 $content 的值,具体代码如下:
3) 通过浏览器访问,可以看到页面中显示的结果为“文本内容”。
另外,读者也可以尝试将代码换成用 with() 函数来实现,具体代码如下:
// 方式1:通过view()函数的第2个参数传数据 return view(视图文件, 数组); // 方式2:通过with()方法传数据 return view(视图文件)->with(数组); // 方式3:通过连续调用with()方法传数据 return view(视图文件)->with(名称, 值)->with(名称, 值)…在上述代码中,前两种方式是传入数组,将数组中的键作为视图中的变量名,将数组中的值作为视图中的变量值;第 3 种方式是单独传每个变量。
下面演示如何在控制器中向视图传递数据,具体步骤如下:
1) 在 TestController 的 show() 方法中准备一个数组,将其传给视图,具体代码如下:
public function show() { $data = [ 'content' => '文本内容' ]; return view('show', $data); }在上述代码中,$data 数组中的每个元素对应视图中的每个变量。
2) 修改 resources\views\show.blade.php 视图文件,输出 $content 的值,具体代码如下:
<body> {{ $content }} </body>
3) 通过浏览器访问,可以看到页面中显示的结果为“文本内容”。
另外,读者也可以尝试将代码换成用 with() 函数来实现,具体代码如下:
return view('show')->with('content', '文本内容');