执行db:seed Artisan命令时,发生错误“找不到类'ZipArchive'”

时间:2019-12-05 04:05:28

标签: php excel laravel

我执行以下命令时遇到问题。

php artisan db:seed --class=QuestionTableSeeder

错误消息如下。

  

Symfony \ Component \ Debug \ Exception \ FatalThrowableError:类   找不到“ ZipArchive”

     在

  /var/www/csi/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php:338       334 | $ excel-> removeCellXfByIndex(0); //删除默认样式       335 | }       336 | $ unparsedLoadedData = [];       337 |

     
    

338 | $ zip = new ZipArchive();         339 | $ zip-> open($ pFilename);         340 |         341 | //首先阅读主题,因为在阅读样式时我们需要配色方案         342 | //〜http://schemas.openxmlformats.org/package/2006/relationships

  
     

异常跟踪:

     

1
  PhpOffice \ PhpSpreadsheet \ Reader \ Xlsx :: load(“ / tmp / laravel-excel-8wjCLq8hS4qVk49C5Rg30jkE6zVErU01.xlsx”)         /var/www/csi/vendor/maatwebsite/excel/src/Reader.php:229

     

2 Maatwebsite \ Excel \ Reader :: readSpreadsheet()         /var/www/csi/vendor/maatwebsite/excel/src/Reader.php:215

     

请使用参数-v查看更多详细信息。

紧随其后的是QuestionTableSeeder类。

<?php

use App\Imports\QuestionImport;
use App\ORM\Question;
use Illuminate\Database\Seeder;
use Maatwebsite\Excel\Facades\Excel;

class QuestionTableSeeder extends Seeder
{
    public function run(): void
    {
        DB::statement('set foreign_key_checks=0');
        Question::truncate();
        DB::statement('set foreign_key_checks=1');
        Excel::import(new QuestionImport(), 'database/seeds/data/questions.xlsx');
    }
}

请告诉我解决方案。我该怎么办才能解决问题?我已经安装了php7.3-zip和php73-php-pecl-zip,然后重新启动了Apache,但仍然无法正常工作。

版本如下;

  • PHP:7.3
  • Laravel:6.6.0
  • maatwebsite / excel:3.1.17
  • mysql Ver 15.1:使用readline 5.1分发Linux(x86_64)5.5.64-MariaDB
  • CentOS Linux:版本7.7.1908(核心)

1 个答案:

答案 0 :(得分:0)

尝试运行

php -m | grep zip

如果缺少输出CLI上的“ zip”显示,则表示您未安装php zip扩展名。您应该已安装。

yum install -y zip php-zip php-pecl-zip

希望有帮助。