我是 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';
}
请帮帮我...
答案 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();
}