【问题标题】:Create a view with a lot of parameters in Laravel在 Laravel 中创建一个包含大量参数的视图
【发布时间】: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


【解决方案1】:

“我们应该忘记小的效率,比如大约 97% 的时间:过早的优化是万恶之源”- Donald Knuth

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

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

所以答案是 2。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2017-12-07
        • 2018-10-09
        • 2018-07-29
        • 1970-01-01
        • 1970-01-01
        • 2021-06-21
        • 1970-01-01
        • 2017-08-07
        • 1970-01-01
        相关资源
        最近更新 更多