传递许多数组和长变量以在 Laravel 中查看的最佳实践


Best practice to pass many arrays and long variables to view in Laravel

请考虑此控制器中的此方法:

 public function showPage() {
    $settings = [
        'show_box' => 'Show box',
        'coolstuff'   => 'Some text',
        'ss_text'   => 'Anotehr text',
        'blur_haha'   => 'Nice text',
        'nice_s'   => 'Nice hahahaha',
    ];
    $text = [
        'hey' => 'Show box',
        'nice_text'   => 'Some text',
        'yes_text'   => 'Anotehr text',
        'no_hahaaha'   => 'Nice text',
        'cool_text'   => 'Nice hahahaha',
    ];
    return view('page',  compact('settings');
}

如您所见,该方法主要包含数组的变量声明。现在假设有 10 个这样的变量。

执行此操作的最佳做法是什么?这没有错,但它一点也不干净。它非常拥挤。

我想知道是否可以在其他地方声明它们并将变量传递给控制器。

谢谢。

如果你的数组和变量是静态的,最好不要弄乱你的控制器(或任何PHP类)。

我会定义一个配置文件。例如,config/settings.php

// config/settings.php
return [
    'show_box' => 'Show box',
    'coolstuff'   => 'Some text',
    'ss_text'   => 'Anotehr text',
    'blur_haha'   => 'Nice text',
    'nice_s'   => 'Nice hahahaha',
];

现在,在控制器中,您可以执行此操作:

return view('page', ['settings' => Config::get('settings')];

如果您的控制器需要先检查、添加或修改几个设置:

$settings = array_merge(Config::get('settings'), [
    "new" => "some text",
    "show_box" => "change this value"
]);
return view('page', ['settings' => $settings]);