Laravel 9使用Maat Excel报错:Undefined type 'App\Models\import'如何解决?
问题描述
尝试编写如下代码,在Imports目录下创建RtdImport类,用于通过Maat Excel将SQL数据导入Excel:
<?php namespace App\Imports; use App\Models\import; use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithHeadingRow; class RtdImport implements ToModel, WithHeadingRow { /** * @param array $row * * @return \Illuminate\Database\Eloquent\Model|null */ public function model(array $row) { return new import([ 'status' => $row['status'], ]); } }
执行时出现报错:
Undefined type 'App\Models\import'
解决方法
- 检查模型文件存在性:确认
app/Models目录下是否存在Import.php模型文件。Laravel模型命名遵循大驼峰规范,文件名和类名必须一致且首字母大写。如果该模型不存在,需先创建对应模型,或修正引用的模型名称。 - 修正类名大小写:PHP类名区分大小写,当前代码中
import为小写,不符合Laravel命名规范。需将导入语句改为use App\Models\Import;,同时实例化代码改为new Import(...)。 - 验证模型命名空间:确保
Import模型的命名空间为namespace App\Models;,与导入语句中的命名空间完全匹配。
修正后的代码示例:
<?php namespace App\Imports; use App\Models\Import; use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithHeadingRow; class RtdImport implements ToModel, WithHeadingRow { /** * @param array $row * * @return \Illuminate\Database\Eloquent\Model|null */ public function model(array $row) { return new Import([ 'status' => $row['status'], ]); } }
内容的提问来源于stack exchange,提问作者Erza Mazde
相关产品推荐
相关产品推荐

