尝试更新时显示错误消息 - Laravel 8

时间:2021-05-08 10:38:23

标签: laravel

我是 Laravel 的新手。每当我更新表单时,我都会附上我的代码,它给出了同样的错误。请彻底检查我的代码,让我知道错误在哪里。

public function updateCategory(Request $request) {

        $catname = $request->catname;
        if($catimg = $request->hasFile('updatecatimg')) {

            File::cleanDirectory(public_path().'/images/'.$catname);

            $catimg = $request->file('updatecatimg');
            $catimgnm = $catimg->getClientOriginalName();
            $storeTo = public_path() . '/images/' . $catname;
            File::makeDirectory($storeTo, $mode = 0777, true, true);
            $catimg->move($storeTo, $catimgnm);
        }

        Category::where('cat_id', $request->catid)->update(['cat_name' => $catname, 'cat_img' => $catimgnm, 'status' => $request->status]);

        return back();
    }

类别模型

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class AddCategory extends Model
{
    protected $table = 'cms_category';
    protected $primaryKey = 'cat_id';
}

文件夹 enter image description here

数据库 enter image description here

enter image description here

错误 enter image description here

请帮帮我...

2 个答案:

答案 0 :(得分:0)

你应该试试这个代码。

这是您的编辑文件

  <input type="hidden" name="old_image" id="old_image"
     value="{{isset($contact->cat_img)?$contact->cat_img:''}}">

之后:

use File;

 public function updateCategory(Request $request) {

   if ($request->hasFile('updatecatimg')){
     $image_path = public_path('/images/'.$request->old_image);
       if(File::exists($image_path)){
          unlink($image_path);
       } 

       $file = $request->file('updatecatimg');
       $catimgnm  = $file->getClientOriginalName();
       $destinationPath = public_path('/images/');
       $file->move($destinationPath, $catimgnm  );
       $contact = "YOUR MODEL NAME"::find($request->cat_id);
       $contact->cat_img =$catimgnm ;
       $contact->save();    
  }
}

我希望这段代码能在你的控制器中工作。

答案 1 :(得分:0)

这是您更新的答案。 Category::findOrFail() 会找到类别对象,使用它,我们可以只更新特定字段,并使用 save() 函数更新对象。

  public function updateCategory(Request $request)
  {
    $catId = $request->catid;
    $category = Category::findOrFail($catId);
    $oldCategory = $category->cat_name;
    rename(public_path() . '/images/' . $oldCategory, public_path() . '/images/' . $request->catname);

    $category->cat_name = $request->catname;

    if ($request->hasFile('updatecatimg')) {

      File::cleanDirectory(public_path() . '/images/' . $request->catname);

      $catImg = $request->file('updatecatimg');
      $category->cat_img = $catImg->getClientOriginalName();

      $storeTo = public_path() . '/images/' . $request->catname;
      File::makeDirectory($storeTo, $mode = 0777, true, true);
      $catImg->move($storeTo, $request->catname);
    }

    $category->save();

    return back();
  }
相关问题