我在SiteadminController.php第679行中遇到此错误FatalErrorException: 在null上调用成员函数isvalid(),而不是在update.ifout上传图像时将其运行。
控制器
public function siteadmin_update_banner_submit(Request $request)
{
$post = $request->all();
$id = $post['id'];
// $banner_title = $post['banner_title'];
//$banner_redirecturl = $post['banner_redirecturl'];
$banner_image = Input::file('banner_image');
$banner_title = $request->input('banner_title');
$banner_redirecturl = $request->input('banner_redirecturl');
$v = validator::make($request->all(),
[
//'banner_title' => 'required',
//'banner_redirecturl' => 'required',
//'banner_image' => 'required',
]
);
if ($v->fails()) {
return redirect()->back()->withErrors($v->errors());
} else {
if ($banner_image->isvalid()) {
$extension = $banner_image->getClientOriginalName();
$move_img = explode('.', $extension);
$fileName = $move_img[0] . str_random(8) . "." . $move_img[1];
$destinationPath = '../assets/bannerimage/';
$uploadSuccess = Input::file('banner_image')->move($destinationPath, $fileName);
$data = [
'banner_title' => $banner_title,
'banner_redirecturl' => $banner_redirecturl,
'image' => $fileName,
];
$ch = DB::table('le_banner')->where('banner_id', $post['id'])->update($data);
if ($ch > 0) {
Session::flash('message_update', 'Record Updated Successfully');
return redirect('siteadmin_managebanner');
} else {
return Redirect('siteadmin_editbanner');
}
}
}
}
视图
<form id="editproduct" onsubmit="return validateForm()" method="POST" action="{{action('SiteadminController@siteadmin_update_banner_submit')}}" enctype="multipart/form-data">
&#34;&GT; banner_id?&gt;&#34;&gt;
<!-- text input -->
<div class="form-group">
<label>Banner Title*</label>
<input type="text" class="form-control" placeholder="Banner Title" name="banner_title" value="<?=$row->banner_title ?>" id="banner_name">
</div>
<div class="form-group">
<label>Edit Banner Image</label>
<input type="file" id="banner_image" name="banner_image">
<img src="{{ url('../assets/bannerimage/').'/'.$row->image}}" style="height:90px;">
</div>
<div class="form-group">
<label>Redirect URL*</label>
<input type="text" class="form-control" placeholder="Banner URL" name="banner_redirecturl" value="<?=$row->banner_redirecturl ?>" id="banner_redirecturl">
</div>
<div class="form-group">
<div class="col-sm-2">
<input type="submit" name="submit" value="Update" class="btn btn-block btn-success">
</div>
</div>
<div class="form-group">
<div class="col-sm-2">
<input type="reset" name="submit" value="Cancel" class="btn btn-block btn-danger">
</div>
</div>
</form>
答案 0 :(得分:0)
您将收到此错误,因为请求中不存在该文件。
将您的if语句更改为:
if ($reqest->hasFile('banner_image') && $banner_image->isvalid())
另外,请确保您的表单打开标记中包含enctype="multipart/form-data"
,例如
<form method="POST" enctype="multipart/form-data">
希望这有帮助!
答案 1 :(得分:0)
分配$ buffered_image变量时遇到问题。检查您是否在表单中启用了文件上传(html)
答案 2 :(得分:0)
如果请求值为空,则应使用:
if (Input::hasFile('banner_image'))
之前
if ($banner_image->isvalid())
让我知道