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

Laravel 9 Dropzone文件上传成功但数据库插入失败:模型找不到错误

Laravel 9中Dropzone多文件上传:文件上传成功但无法写入数据库,报错“找不到app\models\MultiImageModel类”

在Laravel 9中使用Dropzone实现多文件上传时,文件可成功上传至服务器目录,但无法插入数据库,报错提示“找不到app\models\MultiImageModel类”。以下是相关代码及问题详情:

Blade视图代码

<form action="{{ route('admin_multiupload_store') }}" method="POST" enctype="multipart/form-data" class="dropzone" id="image-upload">
    @csrf
    
    <input type="hidden" name="type" value="{{ $type }}">
    <input type="hidden" name="id" value="{{ $id }}">
</form>

JavaScript代码

<script type="text/javascript">
 
    new Dropzone("#image-upload", {
        maxFilesize:12,
        acceptedFiles:".jpeg,.jpg,.png,.gif,.svg",
        addRemoveLink:true,
        timeout: 5000,
        success: function(file, response){
            Swal.fire({
                icon: 'success',
                title: '操作成功...',
                text: '{!! session()->get('success') !!}'
            });
        },
        error: function(file, response){
            return false;
        }
    })
</script>

控制器代码

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use app\Models\MultiImageModel; // 错误点:命名空间应为大写App

class MultiImageController extends Controller
{
    public function index($type, $id) {
        return view('admin.multiupload', compact('type','id'));
    }

    public function store(Request $request) {
        $image = $request->file('file');
        $imageName = time().rand(1,1000).'.'.$image->extension();
        $image->move(public_path('uploads/'),$imageName);

        $image_data = new MultiImageModel();
        var_dump($image_data);
        $image_data->upload_type = $request->type;  
        $image_data->upload_id = $request->id;
        $image_data->upload_filephp = $imageName;  
        $image_data->save();

        return response()->json(['success'=> $imageName]);
    }
}

模型代码

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class MultiImageModel extends Model
{
    protected $table = 'multi_image_models';
    use HasFactory;
}

错误信息

报错提示:找不到app\models\MultiImageModel类

解决方法

  1. 修正命名空间引用:将控制器中的use app\Models\MultiImageModel;改为use App\Models\MultiImageModel;。Laravel的命名空间采用大写开头的App,小写的app会导致PHP无法定位到正确的模型类文件。
  2. 更新自动加载器(可选):执行命令 composer dump-autoload,确保Composer的自动加载缓存被更新,避免类加载的缓存问题。

内容的提问来源于stack exchange,提问作者Kıvanç Karataş

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 16:13:36