【问题标题】:Why my update image on Laravel 5.5 didn't work?为什么我在 Laravel 5.5 上的更新图像不起作用?
【发布时间】:2020-05-21 10:06:30
【问题描述】:

我必须在我的主表上编辑数据。用户可以编辑数据并且它适用于另一个,但是当我更改图像时,它没有改变并且在我更新它时没有给出错误。我使用 Laravel 5.5,这是我使用的代码:

这是更新的控制器

public function update(Request $request)
    {

        $this->validate($request, [
            'nama_objek_edit' => 'required',
            'objek_lat_edit' => 'required',
            'objek_lng_edit' => 'required',
            'objek_deskripsi_edit' => 'required',
            'objek_pict_edit' => 'required'

        ]);


        $updateObjek = TbLokasi::where('id_lokasi', $request->id)->first();
        $updateObjek->lokasi_nama = $request->nama_objek_edit;
        $updateObjek->lokasi_lat = $request->objek_lat_edit;
        $updateObjek->lokasi_lng = $request->objek_lng_edit;
        $updateObjek->lokasi_desc = $request->objek_deskripsi_edit;
        if ($request->hasFile('lokasi_pict')) {
            $filePic   = $request->file('lokasi_pict');
            $extension = $filePic->getClientOriginalExtension();
            $fileName  = date('m-d-Y_', time()) . $request->lokasi_nama;
            // $filePic->move('/uluwatu_image/', $fileName . '.' . $extension, file_get_contents($request->file('objek_pict')->getRealPath()));
            $filePic->move('uluwatu_image/', $fileName . '.' . $extension);
            $updateObjek->lokasi_pict = 'uluwatu_image/' . $fileName . '.' . $extension;
        }

         $updateObjek->save();
        return redirect('/masterdata')->with('success', 'Data Berhasil Diubah');
    }

这是用户想要更改图像时的代码:

<div class="col-md-6 col-lg-6">
    <div class="col-md-6 col-lg-12">
        <div class="card" style="width:100%">
            <img src="{{ asset($updateobjek['lokasi_pict']) }}" style="width:100%" 
            alt="Card Image" />
            <div class="form-group">
                <label for="exampleFormControlFile1">Change Image</label>
                <input type="file" class="form-control-file" id="objek_pict_edit" 
                name="objek_pict_edit">
            </div>
        </div>
    </div>
</div>

这是用户添加新数据的控制器存储:

public function store(Request $request)
    {
        if ($request->hasFile('objek_wto')) {
            $filePic   = $request->file('objek_wto');
            $extension = $filePic->getClientOriginalExtension();
            $fileName  = 'pura-uluwatu';
            // $filePic->move('/uluwatu_image/', $fileName . '.' . $extension, file_get_contents($request->file('objek_pict')->getRealPath()));
            $filePic->move('marker/', $fileName . '.' . $extension);
        }

        // ObjekTable::create($request->all());

        $new_objek = new TbObjek();
        $new_objek->objek_nama = $request->objek_nama;
        $new_objek->objek_wto = 'marker/' . $fileName . '.' . $extension;
        $new_objek->objek_desc = $request->objek_desc;
        $new_objek->save();

        return redirect('masterdataobjek')->with('success', 'Data Berhasil Ditambah');
    }

EditFormBlade.php

Controller

【问题讨论】:

    标签: laravel laravel-5 model-view-controller crud edit


    【解决方案1】:

    您在return redirect('/masterdata')-&gt;with('success', 'Data Berhasil Diubah'); 之前缺少$updateObjek-&gt;save();,因此您对模型的更改不会保存。

    【讨论】:

    • 那么调试,当你提交带有图片的表单时,你会进入if ($request-&gt;hasFile('lokasi_pict')) 的状态吗?你的表格有enctype='multipart/form-data'吗?提交的文件是否移动到uluwatu_image 目录? ...
    • 我试过了,我只能改变一次图像(第一次),下一次它没有改变。这是我的控制器的完整代码 (pastebin.pl/view/36b7bacf),这是我的表单视图 (pastebin.pl/view/d9a899b6)
    猜你喜欢
    • 2018-06-23
    • 2019-12-24
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多