当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();
}