当I';我正在尝试更新-Laravel 8

当I';我正在尝试更新-Laravel 8,laravel,Laravel,我是新来的。每当我更新表单时,我都会附加代码,因为它会给出相同的错误。请仔细检查我的代码,让我知道错误在哪里 public function updateCategory(Request $request) { $catname = $request->catname; if($catimg = $request->hasFile('updatecatimg')) { File::cleanDirectory(public_

我是新来的。每当我更新表单时,我都会附加代码,因为它会给出相同的错误。请仔细检查我的代码,让我知道错误在哪里

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';
}
文件夹

分贝

错误


请帮助我…

您应该试试这个代码

这是您的编辑文件

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

我希望此代码在您的控制器中正常工作。

这是您的最新答案
Category::findOrFail()
将查找Category对象,使用它,我们只能更新特定字段,并使用
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();
  }

尝试先使用错误日志($catimgnm)或dd($catimgnm)打印$catimgnm变量。你能把你的刀片文件也分享给我们吗?我想我知道你的问题,但我需要首先确定。
$catimgnm
仅在($catimg=$request->hasFile('updatecaimg'))的情况下设置为
{
只需为你的图像发布片段即可input@KevinYobeth提供您的电子邮件id@csrfunlink(D:\xampp\htdocs\Office\VTPL\Varneli HOME\u CMS\vareliCMS\public\/images/):是一个目录这是我面临的错误$contact=Category::find($request->cat_id);显示NULLreturn@AbhijitDutta您应该输入您的文件,然后在任意位置添加此行。此行是为您的数据库映像行id请求的。它显示相同的错误:(但是,如果我只是尝试更新标题,而不是旧图像,它会更新,但它无法保存更新的内容……我在If语句上方添加了这一行。但是我想知道,如果我只是尝试更新标题,它不会保存,但如果我更新标题和图像,那么两者都会起作用。为什么?请帮助,在这种情况下,您可以只更新您需要的内容。我有u根据您的需要更新代码,它应该可以工作。它检查是否有
updatecaimg
附加文件,如果有,它将更新所有字段。如果没有,它将只更新
cat_name
并返回。希望这有帮助。您可以编写代码以便我能够理解它…我已经在我的la上更新了代码st编辑
  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();
  }