Laravel Nova-使用动作允许多次下载

时间:2019-07-03 18:36:25

标签: laravel laravel-nova

在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文件,然后下载它,但如果我们允许下载队列,我希望它。

1 个答案:

答案 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');
}