无需重复代码即可打开基于请求值的视图
Opening request value-based view without repeating code
我正在尝试根据请求值打开不同的视图。例如,如果 $request
的值设置为 1,则应打开视图 1。如果 $request
值为二,则应打开视图二。
我的代码运行良好,但现在,我必须为每个视图重复代码。如何在不重复 if 条件的情况下做到这一点?
场景
public function printreports(Request $request)
{
$reports = $request->get('reports');
if ($reports === 1) {
return view('teachers.report1', compact('anything'));
}
if ($reports === 2) {
return view('teachers.report2', compact('anything'));
}
}
对于具有相似名称模式的大量文件:
$viewName = sprintf('teachers.report%d', $request->get('reports', 1))
if (!\View::exists($viewName)) {
___ throw an error or return default view ____
}
return view($viewName, compact('anything'));
我正在尝试根据请求值打开不同的视图。例如,如果 $request
的值设置为 1,则应打开视图 1。如果 $request
值为二,则应打开视图二。
我的代码运行良好,但现在,我必须为每个视图重复代码。如何在不重复 if 条件的情况下做到这一点?
场景
public function printreports(Request $request)
{
$reports = $request->get('reports');
if ($reports === 1) {
return view('teachers.report1', compact('anything'));
}
if ($reports === 2) {
return view('teachers.report2', compact('anything'));
}
}
对于具有相似名称模式的大量文件:
$viewName = sprintf('teachers.report%d', $request->get('reports', 1))
if (!\View::exists($viewName)) {
___ throw an error or return default view ____
}
return view($viewName, compact('anything'));