1

我是第一次创建自己的 Laravel 包。我创建了一个新项目并在项目中需要 Orchestra/testbench。看起来一切正常,我可以在包内运行测试,但我无法在包内使用 Laravel Excel。

在 composer.json 我添加

"extra": {
    "laravel": {
        "providers": [
            "Maatwebsite\\Excel\\ExcelServiceProvider"
        ],
        "aliases": {
            "Excel": "Maatwebsite\\Excel\\Facades\\Excel",
        }
    }
},
"require-dev": {
    "orchestra/testbench": "6.0",
    "phpunit/phpunit": "^9.5",
    "maatwebsite/excel": "^3.1"
}

并且还跑了composer dump-autoload,当我想在我的包中使用 Laravel Excel 时,我试过了

use Maatwebsite\Excel\Facades\Excel;

class TaxCalculation {

    public function incomeTax(): float
    {
        $table = Excel::import(new TaxImport(), 'file.xls');
    }

但是遇到了错误

Illuminate\Contracts\Container\BindingResolutionException: Target class [excel] does not exist.

D:\code\packages\thai_tax\vendor\laravel\framework\src\Illuminate\Container\Container.php:832
D:\code\packages\thai_tax\vendor\laravel\framework\src\Illuminate\Container\Container.php:712
D:\code\packages\thai_tax\vendor\laravel\framework\src\Illuminate\Foundation\Application.php:796
D:\code\packages\thai_tax\vendor\laravel\framework\src\Illuminate\Container\Container.php:651
D:\code\packages\thai_tax\vendor\laravel\framework\src\Illuminate\Foundation\Application.php:781
D:\code\packages\thai_tax\vendor\laravel\framework\src\Illuminate\Container\Container.php:1354
D:\code\packages\thai_tax\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php:198
D:\code\packages\thai_tax\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php:166
D:\code\packages\thai_tax\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php:255
D:\code\packages\thai_tax\src\Services\TaxCalculation.php:45
D:\code\packages\thai_tax\tests\Unit\CreateFacadeTest.php:26

Caused by
ReflectionException: Class excel does not exist

Excel 似乎没有加载。我需要做更多的步骤来使用它吗?

4

0 回答 0