本文将为大家详细介绍Laravel 实现Controller向blade前台模板赋值的四种方式。
## 1. 传统方式
传统的方式就是在controller中使用 *View::make* 去渲染视图,同时将数据通过数组的方式传递给blade模板。这种方式在l5中仍然可用,但是不推荐使用。
```php
/**
* 显示指定用户的数据
*
* @param int $id
* @return Response
*/
public function show($id)
{
// 获取某个用户的信息
$user = User::findOrFail($id);
// 单个变量
return view('user.show', ['user' => $user]);
// 多个变量
return view('user.show', ['user' => $user, 'otherData' => $otherData]);
}
```
## 2. compact函数
compact函数可以在controller中以更为简便的形式把变量传递给blade。
```php
public function index()
{
$users = User::all();
return view('user.index', compact('users'));
}
```
## 3. with方法
with方法可以在controller中把变量传递给blade。
```php
public function index()
{
$users = User::all();
return view('user.index')->with('users', $users);
}
```
可以看出,with方法和compact方法在传递变量时效果类似,但是更推荐使用with方法。因为with方法的可读性更好,可以使代码更易于理解。
## 4. view方法的第二个参数
在controller中还可以直接在使用 *View* 类时传递变量。
```php
public function index()
{
$users = User::all();
return view('user.index', ['users' => $users]);
}
```
和传统方式类似,但是它会调用Illuminate\View\Factory类的make()方法来自动实例化视图。
## 总结
本文为您介绍了Laravel 实现Controller向blade前台模板赋值的四种方式,包括传统方式、compact函数、with方法和view方法的第二个参数。每种方式各有优缺点。因此,您需要根据实际情况选择最佳方式。
感谢阅读本文,如有疑问请在评论区留言。