请考虑此控制器中的此方法:
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]);