调用数组 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();

