请在此控制器中考虑此方法:
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个变量。
这样做的最佳做法是什么?这没有什么不妥,但它根本不干净。它非常拥挤。
我想知道是否可以在其他地方声明它们并将变量传递给控制器。
谢谢。
答案 0 :(得分:1)
如果您的数组和变量是静态的,最好不要混淆控制器(或任何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]);