我创建了一个表单来更新表'组织者'。我的问题是图像不会更新。我已经在表单中添加了enctype="multipart/form-data"
。
如果我将图像的验证设置为required,则laravel会抛出错误“徽标必须是图像”。似乎我的ImageController没有获取图像文件。但是为什么Controller会获得所有其他数据,如描述,名称..?
表'组织者'中的所有其他数据正在更新而没有问题!
表格
<form class="form" enctype="multipart/form-data" action="/organizer/update/{{ $organizer->id }}">
<input type="hidden" name="_method" value="PUT">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
...
other input fields...
...
<label>Logo</label>
<input type="file" name="logo" id="logo" accept="image/*"/>
<button class="btn-add" type="submit">@lang('Save')</button>
</form>
控制器(仅用于更新图像的代码)
if($request->hasFile('logo')){
// ADD NEW lOGO
$logo = $request->file('logo');
$logo_name = $request->name.'_logo'.time().'.'.$logo->getClientOriginalExtension();
$request->logo->move($destinationPath, $logo_name);
$oldFilename = $organizer->logo;
// UPDATE DATABASE
$organizer->logo = $logo_name;
// DELETE OLD lOGO
Storage::disk('public')->delete("organizer/$oldFilename.jpg");
}