【问题标题】:Maatwebsite/Laravel-Excel exports blank excel when using Input::get() in modelMaatwebsite/Laravel-Excel 在模型中使用 Input::get() 时导出空白 excel
【发布时间】:2019-04-17 12:00:05
【问题描述】:

我开发了一个 Laravel 应用程序,它连接到外部 MySQL 数据库以获取报告。我正在使用 Maatwebsite/Laravel-Excel 3.1 能够导出到 excel。

在这个应用程序中,我的模型中有一个方法,它使用 Input::get() 处理 3 个变量($from、$to、$paymentType)。每当用户选择日期范围和付款类型作为其报告的过滤器时,都会调用此方法。一切正常,因为数据显示在我的视图中。

现在,当用户选择将文件导出到 Excel 时,也会调用相同的方法。同样,除了文件之外的所有工作都是空白的。

奇怪的是,如果我将所有 Input::get() 替换为静态值,例如将“2018-11-14”替换为日期,将“n”替换为付款类型,那么文件将导出数据。

我已经为此苦苦挣扎了几天,希望有人能帮助我。

谢谢,

埃内斯托

【问题讨论】:

  • 你使用的是什么版本的 Laravel? Input::get() 已弃用,您应该改用 $request->input()
  • 抱歉,我使用的是 Laravel 5.6。当我使用$request->input() 时,我会调用未定义的方法 Illuminate\Database\Eloquent\Builder::input()。
  • 您要创建哪种格式,例如csv、xls 还是 xlsx?您也是从视图、集合或数组创建导出 excel 文件。您能否将您的部分代码(来自控制器)添加到您要导出它的位置和/或任何其他相关源 sn-p。这将有助于确定原因。

标签: laravel laravel-excel


【解决方案1】:

如果参数是从请求中获取的,你应该使用$request->input()而不是Input::get()

如果在$request 不可用的函数中使用,您可以使用request('variable') 从请求中获取variable 值。

【讨论】:

  • 当我使用 $request->input() 时,我会调用未定义的方法 Illuminate\Database\Eloquent\Builder::input()。
  • 你在哪里使用代码:控制器、模型、存储库......?您能否提供问题中的代码?
  • 模型中使用。我可以尝试发布我的代码,但必须对其进行编辑以隐藏表名等。
  • 我得到了同样的结果,空白的excel。这可能是导出模型的问题吗?我在 mi 导出模型中有这个:
    class ReportsExport implements FromQuery, WithMapping, WithHeadings, ShouldAutoSize, WithColumnFormatting { /** * @return \Illuminate\Support\Collection */ public function query() { return Report::docs()->orderBy('desc_doc'); }
  • 所以问题是文件为空,而不是请求参数。对吗?
【解决方案2】:

首先,在控制器文件的顶部,添加:

use Illuminate\Http\Request;

然后,您可以通过以下方式访问这些字段:

$request->input('from');
$request->input('to');

假设:fromto 是正确的字段名称。

也可以直接使用request()->input('from')等(注意没有$)。

更多信息请看这里:https://laravel.com/docs/5.6/requests

【讨论】:

  • "您也可以直接使用 request()->input('from') 等(注意没有 $)。" 这可以工作,但方式相同 Input::get()。这意味着它在我的视图中显示了所有数据,但导出的 excel 是空白的。忘了说我做了一个 dd($from, $to, $paymentType) 来确保正确的值被传递并且确实是。
  • @orpheus779 我明白了。你能告诉我们相关的控制器和视图代码吗?
猜你喜欢
  • 1970-01-01
  • 2019-05-20
  • 2020-12-20
  • 1970-01-01
  • 2016-11-23
  • 1970-01-01
  • 2020-09-04
  • 2019-05-15
  • 2021-10-08
相关资源
最近更新 更多