Laravel中使用maatwebsite/excel发布资源报错,求Excel导入解决方案
解决Maatwebsite/Excel发布配置时的"No publishable resources for tag []"问题
1. 修正发布命令中的Provider类名
你执行的命令里Provider类名错误,maatwebsite/excel的正确服务提供者类是Maatwebsite\Excel\ExcelServiceProvider,而非Maatwebsite\Excel\ServiceProvider。执行以下正确命令:
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
2. 移除手动添加的配置(针对3.1+版本)
从Laravel 5.5开始支持包自动发现,maatwebsite/excel 3.1及以上版本已实现自动注册服务提供者与别名,手动在config/app.php中添加配置会导致冲突。直接删除你添加的以下两行:
// providers数组中的这行 Maatwebsite\Excel\ExcelServiceProvider::class, // aliases数组中的这行 'Excel' => Maatwebsite\Excel\Facades\Excel::class,
然后执行自动加载刷新:
composer dump-autoload
3. 确认包安装状态
如果上述步骤无效,先重新安装包确保依赖完整:
composer require maatwebsite/excel
再次执行正确的发布命令,此时应该会生成config/excel.php配置文件。
4. 测试Excel导入功能
创建一个基础导入类示例:
<?php namespace App\Imports; use App\Models\User; use Maatwebsite\Excel\Concerns\ToModel; class UsersImport implements ToModel { public function model(array $row) { return new User([ 'name' => $row[0], 'email' => $row[1], 'password' => bcrypt($row[2]), ]); } }
在控制器中调用导入逻辑:
<?php namespace App\Http\Controllers; use App\Imports\UsersImport; use Maatwebsite\Excel\Facades\Excel; class UserController extends Controller { public function import() { Excel::import(new UsersImport, 'users.xlsx'); return back()->with('success', '数据导入完成'); } }
内容的提问来源于stack exchange,提问作者Latte cofie
相关产品推荐
相关产品推荐

