【问题标题】:Call to undefined method Maatwebsite\Excel\Excel::create() - laravel 5.6调用未定义的方法 Maatwebsite\Excel\Excel::create() - laravel 5.6
【发布时间】:2018-10-28 18:42:54
【问题描述】:

我在我的应用程序中使用 Maatwebsite/Excel,当我收到错误时

调用未定义的方法 Maatwebsite\Excel\Excel::create()

来自我的一位控制器。我正在使用 laravel 5.6,我严格按照文档和其他很少的相关在线讨论来解决这个问题,但我仍然得到错误。

请问这个错误怎么解决

app.php

'provider' => 'Maatwebsite\Excel\ExcelServiceProvider',

'alias' => 'Excel'=>  'Maatwebsite\Excel\Facades\Excel',

控制器

$cl = ClassModel::Select('name')->where('code',$input->class)->first();
        $input->class=$cl->name;
        $fileName=$input->class.'-'.$input->section.'-'.$input->session.'-'.$input->exam;
        // return $students;
        Excel::create($fileName, function($excel) use($input,$subjects,$students) {
            $excel->sheet('New sheet', function($sheet) use ($input,$subjects,$students) {
                $sheet->loadView('app.excel',compact('subjects','input','students'));
            });
        })->download('xlsx');

【问题讨论】:

  • Maatwebsite\Excel\Excel 使用哪个版本?
  • @AddWebSolutionPvtLtd maatwebsite/excel": "~3.0
  • 请更新 3.0 到 2.0 并尝试
  • 该软件包的 3.0 版尚未处理导入。此功能的发布日期未知。有关详细信息,请参阅此帖子:medium.com/@maatwebsite/…
  • 你试过composer dump-autoload吗?

标签: php laravel maatwebsite-excel


【解决方案1】:

您在使用 3.* 包时使用 2.* 语法。请参阅此处的正确文档:https://laravel-excel.maatwebsite.nl/docs/3.0/export/basics

【讨论】:

  • 每个文档:“Excel::create() 被删除并替换为 Excel::download/Excel::store($yourExport)”
【解决方案2】:

尝试使用以下方法降低版本:

composer require "maatwebsite/excel=2.1.0"

【讨论】:

  • [InvalidArgumentException] 在任何版本中都找不到包 ~2.1.0 以获得最低稳定性 (dev)。检查包拼写或您的最低稳定性
【解决方案3】:

新版本的包有很多变化。

在 require 数组中的 composer.json 文件中,将您的包替换为:

"maatwebsite/excel": "~2.1.0",

然后运行composer update 这应该可以正常工作。

【讨论】:

  • 作曲家更新!这不是要更新他所有的依赖吗?
  • 绝对好,但目的不是更新所有依赖项。无论如何,由于它仍在开发中,因此可能不必担心。否则,我将安全地单独安装依赖项。或者更确切地说,删除我的供应商文件夹并重新运行 composer install
  • 删除供应商文件夹是个好习惯吗? @OluwatobiSamuelOmisakin
  • “好的”实践可能是相对的,供应商文件夹在整个开发更改中都会发生变化。所以是的,如果需要删除“供应商”文件夹,可以这样做,只需运行composer install 即可根据 composer.lock 或 composer.json 文件中的规范生成供应商文件夹
【解决方案4】:

请切换到版本 2*

该软件包的 3.0 版尚不处理导入。此功能的发布日期未知。更多详情请看这篇文章:maatwebsite

【讨论】:

  • 当我切换到版本 2 时,我在终端中收到此错误结论:删除 laravel/framework v5.6.7
猜你喜欢
  • 2019-11-02
  • 2018-11-09
  • 2019-10-15
  • 2021-02-06
  • 1970-01-01
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
  • 2014-06-24
相关资源
最近更新 更多