laravel - Laravel nova - 使用动作允许多次下载
问题描述
在 laravel 新星 2.0
要在操作执行后启动文件下载,您可以使用 Action::download 方法。download 方法接受要下载的文件的 URL 作为其第一个参数,并将所需的文件名称作为其第二个参数:
return Action::download('https://example.com/invoice.pdf', 'Invoice.pdf');
在 Action 处理方法
public function handle(ActionFields $fields, Collection $models)
{
foreach ( $models as $model ) {
return Action::download($model->document_link, $model->document_title);
}
}
现在这将下载循环中的最后一个,如何允许循环下载所有内容?
更新
一种选择是使用 Zipper 或其他东西来创建所有选定的可下载文件的 zip,然后下载它,但如果我们可以允许下载队列,我会喜欢它。
解决方案
我不相信可以使用下载多个文件
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');
}
推荐阅读
- java - 获取两个操作栏:如何用特定任务的新选项替换原始选项菜单?
- sql - SQL Case 语句在 THEN 子句上增加值
- ruby-on-rails - 在 EC2 上运行 setup-ruby (GitHub Actions) 会抛出 ENOENT: no such file or directory, mkdir
- python - 熊猫从长到宽格式 - 基于 X 列中的较小值和较大值进行拆分
- c# - 哪个命名管道客户端首先连接
- python - 动态更新颜色条标题 - Plotly
- looker - 谁能帮我在 STATUS 字段上创建 Looker Alerts
- flutter - 主体可能正常完成,导致返回“null”,但返回类型可能是不可为空的类型
- windows - 无法加载流浪机器“mount -t vboxsf -o uid=1000,gid=1000,_netdev vagrant /vagrant”
- php - 如何从 php 中删除 div 类?