【发布时间】:2014-08-06 22:35:13
【问题描述】:
我需要在控制器中创建一个包含 20 多个参数的视图。
在 Laravel 中有很多方法可以将参数传递到视图中:
方法一:传递$data作为参数
public function get_index1(){
$data = array(
'var1' => $var1,
'var2' => $var2,
'var3' => $var3,
'var4' => $var4,
);
// associative array
return View::make('test.index', ['data' => $data]);
// OR with compact()
return View::make('test.index', compact('data', 'otherVariable'));
}
方法二:单用
public function get_index2(){
$data = array(
'var1' => $var1,
'var2' => $var2,
'var3' => $var3,
'var4' => $var4,
);
return View::make('test.index')->with($data);
}
方法3:多用
public function get_index3(){
return View::make('test.index')
->with('var1', $var1)
->with('var2', $var2)
->with('var3', $var3)
->with('var4', $var4);
}
在我的情况下(传递超过 20 个参数),这是最有效的方法,为什么?
【问题讨论】:
-
我不相信有一个更有效的方式来提供数据给视图,我见过很多 laravelers 做这三种方式(有些人在一个项目中使用这三种方式) .简单地说:选项二可能是最广泛使用的,部分原因是根据我与之交谈过的 laravelers,它是最佳实践方法。
标签: php laravel laravel-4 laravel-3