调用数组 Laravel 5.2 上的成员函数 getClientOriginalName()
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/37344206/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Call to a member function getClientOriginalName() on array Laravel 5.2
提问by Bi Híp
i have problems, i'm writing function to edit listings menu, when i try to update file image then i meet the error in getClientOriginalName()
我有问题,我正在编写编辑列表菜单的函数,当我尝试更新文件图像时,我遇到了 getClientOriginalName() 中的错误
Call to a member function getClientOriginalName() on array
调用数组上的成员函数 getClientOriginalName()
@foreach($edits as $key => $value)
<input type="hidden" value="{{ $key }}" name="key_edit[{{ $key }}]">
<div class="col-md-10">
<div class="col-md-6">
<div class="form-group">
<label class="form-label" for="field-4">Tên menu</label>
<span class="desc">vd "Technology"</span>
<div class="controls">
<input type="text" id="field-4" name="menu_title[{{ $key }}]" placeholder="Vui lòng ?i?n tên" class="form-control"
value="{{ $value->menu_title }}">
<input type="hidden" id="field-4" name="id_menu[{{ $key }}]" placeholder="Vui lòng ?i?n tên" class="form-control"
value="{{ $value->menu_id }}">
</div>
</div>
</div>
<div class="col-md-6">
<div class="col-md-10 ">
<div class="form-group">
<label class="form-label" for="formfield10">Icon menu</label>
<span class="desc">vd. "character.jpg"</span>
<div class="controls">
<input type="file" multiple="{{ $key }}" class="form-control" id="formfield10" name="upload_icon[{{ $key }}]">
<input type="hidden" value="{{ $value->icon }}" name="icon_hidden[{{ $key }}]">
</div>
</div>
</div>
</div>
</div>
<div class="col-md-2">
<div class="col-md-1 btn-iconic">
<div style="height:33px"></div>
<div class="controls">
<button type="submit" class="btn btn-purple pull-right"><i class="fa fa-edit "></i></button>
</div>
</div>
<div class="col-md-1 btn-iconic">
<div style="height:33px"></div>
<div class="controls">
<button type="submit" class="btn btn-purple"><i class="fa fa-close "></i></button>
</div>
</div>
</div>
@endforeach
</form>
MenuController
菜单控制器
public function edit(Request $request){
$input= $request->all();
$edit = DB::table('categorys')->get();
if($request->hasFile('upload_icon')) {
$file = $input['upload_icon'];
$name = $file->getClientOriginalName();
$file->move(public_path().'/images/menu', $name);
$id= $request->input('id_menu');
$name = $request->input('menu_title');
$icon= $name;
foreach ($edit as $key => $value) {
DB::table('categorys')->where('menu_id', $id)->update([
'menu_id'=> $id[$key],
'menu_title' => $name[$key],
'icon' => $icon[$key]
]);
}
}
else{
$id= $request->input('id_menu');
$name = $request->input('menu_title');
$icon= $request->input('icon_hidden');
$key =$request->input('key_edit');
foreach ($edit as $key => $value) {
DB::table('categorys')->where('menu_id', $id)->update([
'menu_id'=> $id[$key],
'menu_title' => $name[$key],
'icon' => $icon[$key]
]);
}
}
return View('admin.menu.edit')->with('edits',$edit);
}
dd($input['upload_icon']);
dd($input['upload_icon']);
array:2 [▼
0 => UploadedFile {#161 ▼
-test: false
-originalName: "life_icon_post.png"
-mimeType: "image/png"
-size: 344
-error: 0
path: "E:\xampp\tmp"
filename: "phpB451.tmp"
basename: "phpB451.tmp"
pathname: "E:\xampp\tmp\phpB451.tmp"
extension: "tmp"
realPath: "E:\xampp\tmp\phpB451.tmp"
aTime: 2016-05-20 10:40:16
mTime: 2016-05-20 10:40:16
cTime: 2016-05-20 10:40:16
inode: 0
size: 344
perms: 0100666
owner: 0
group: 0
type: "file"
writable: true
readable: true
executable: false
file: true
dir: false
link: false
linkTarget: "E:\xampp\tmp\phpB451.tmp"
}
1 => null
]
回答by Alexey Mezenin
It seems you're trying to use method on collection. You should use foreach()
to iterate over files, or if you have just one file, do something like this:
看来您正在尝试在收集上使用方法。您应该使用foreach()
迭代文件,或者如果您只有一个文件,请执行以下操作:
$name = $file[0]->getClientOriginalName();