我需要在控制器中创建一个包含20个以上参数的视图。
在Laravel中,有很多方法可以将参数传递到视图中:
方法1 :将$ 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'));
}
方法2 :单身
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个参数)这是最有效的方法,为什么?
答案 0 :(得分:1)
只需将那么多参数放入数组中,然后使用您喜欢的方法将其放入其中。在任何一种方法中,您都不会注意到效率的变化。
答案 1 :(得分:1)
由于我还没有看到填充$ data的数据的上下文,我不得不猜测:使用带有循环的选项2,最终构建$ data数组:
$data = array(
'var1' => $var1,
'var2' => $var2,
'var3' => $var3,
'var4' => $var4,
);
始终使用被视为标准练习方法,直到您自己找到一种更符合您理解的方法。从外部的角度来看:如果我要编辑你的代码,我宁愿看到两个,而不是要破译你以其他方式传递数据的方式。
答案 2 :(得分:1)
"我们应该忘记小的效率,大约97%的时间说:过早优化是所有邪恶的根源" - 唐纳德克努特
在开发过程中,您应该关注可维护性而不是性能。只有当你遇到性能问题时,你应该开始担心它,因为经常,优化会带来不可避免的可维护性损失。
当然,这是假设您正在进行Web开发,而不是为强子超级对撞机开发低级矩阵模块。
答案是2。