在Laravel中创建包含大量参数的视图

时间:2014-08-06 13:49:02

标签: php laravel laravel-4 laravel-3

我需要在控制器中创建一个包含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个参数)这是最有效的方法,为什么?

3 个答案:

答案 0 :(得分:1)

只需将那么多参数放入数组中,然后使用您喜欢的方法将其放入其中。在任何一种方法中,您都不会注意到效率的变化。

答案 1 :(得分:1)

由于我还没有看到填充$ data的数据的上下文,我不得不猜测:使用带有循环的选项2,最终构建$ data数组:

$data = array(
    'var1' => $var1,
    'var2' => $var2,
    'var3' => $var3,
    'var4' => $var4,
);

始终使用被视为标准练习方法,直到您自己找到一种更符合您理解的方法。从外部的角度来看:如果我要编辑你的代码,我宁愿看到两个,而不是要破译你以其他方式传递数据的方式。

答案 2 :(得分:1)

  

"我们应该忘记小的效率,大约97%的时间说:过早优化是所有邪恶的根源" - 唐纳德克努特

在开发过程中,您应该关注可维护性而不是性能。只有当你遇到性能问题时,你应该开始担心它,因为经常,优化会带来不可避免的可维护性损失。

当然,这是假设您正在进行Web开发,而不是为强子超级对撞机开发低级矩阵模块。

答案是2。