我有一个控制器方法,可以将模型名称和类名称传递给视图。然后在另一个控制器方法中实例化这些类。在这种情况下,我使用的是 Laravel Excel 包。
public function index()
{
$exports = [
'Model name 1' => TestExport::class,
'Model name 2' => AnotherExport::class
];
return view('export', compact('exports'));
}
public function download(string $collection)
{
return Excel::download(new $collection(), 'Export.xlsx');
}
我的视图文件然后重定向到download具有特定类名的控制器方法。
@foreach($exports as $name => $collection)
<a href="{{ action('ExportController@download', $collection) }}">Download</a>
@endforeach
因为我正在学习设计模式,并注意到它会破坏 DRY 规则,所以我不想要另一个控制器方法或我下载的每个不同的 Excel 文件。
这是好的做法还是可以做得更好?
UYOU
蛊毒传说