You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 09:30:49