在laravel Nova 2.0中
要在执行操作后启动文件下载,可以使用 Action :: download方法。下载方法接受以下网址 要下载的文件作为其第一个参数,以及所需的名称 文件的第二个参数:
return Action::download('https://example.com/invoice.pdf', 'Invoice.pdf');
在操作句柄方法中
public function handle(ActionFields $fields, Collection $models)
{
foreach ( $models as $model ) {
return Action::download($model->document_link, $model->document_title);
}
}
现在这将下载循环中的最后一个,如何允许全部下载?
更新
一个选择是使用Zipper或其他工具为所有选定的可下载文件创建zip文件,然后下载它,但如果我们允许下载队列,我希望它。
答案 0 :(得分:1)
我认为无法使用来下载多个文件
return Action::download()
一种解决方法是创建一个包含所有文件的压缩存档,并显示以下存档示例:
public function handle(ActionFields $fields, Collection $models)
{
foreach ( $models as $model ) {
$this->addTozip($model) // some function to build an archive
}
return Action::download('https://example.com/invoice.zip', 'Invoice.zip');
}