Laravel上传照片可选


public function submitReview(Request $request){

$request->validate([
'comment'=> 'required',
'R_Image' => 'mimes:kpg,png,jpeg|max:5048'

]);


$newImageName = time() . '-' . $request->name . '.' . 
$request->R_Image->extension();
$request->R_Image->move(public_path('images'), $newImageName);


$UserId=Auth::id();
$query = DB::table('review') ->insert ([
'User_Id'=> $UserId,
'P_Id'=>$request->input('productID' ),
'R_Rating'=>$request->input('R_Rating' ),
'R_Comment'=>$request->input('comment' ),
'R_Image'=>$newImageName,
"created_at" =>  CarbonCarbon::now(), # new Datetime()
"updated_at" => CarbonCarbon::now(), 

]);

if ($query) {
return back()-> with ('success' , 'Review has been successfully submitted');
}else{
return back() -> with ('fail' , 'Something went wrong');
}
}
}

这是我的代码供审查。用户可以在提交表单时上传图像,并且不需要图像,这是可选的。然而,当用户不上传图像时;在null上调用成员函数extension((;。但如果提交带有图片的表格,我不会出错。我的代码有问题吗?

public function submitReview(Request $request){

$request->validate([
'comment'=> 'required'
]);
$newImageName = "";
if ($request->hasFile('R_Image')) {
$request->validate([
'R_Image' => 'mimes:kpg,png,jpeg|max:5048'
]);
$newImageName = time() . '-' . $request->name . '.' . 
$request->R_Image->extension();
$request->R_Image->move(public_path('images'), $newImageName);
}
$UserId=Auth::id();
$query = DB::table('review') ->insert ([
'User_Id'=> $UserId,
'P_Id'=>$request->input('productID' ),
'R_Rating'=>$request->input('R_Rating' ),
'R_Comment'=>$request->input('comment' ),
'R_Image'=>$newImageName,
"created_at" =>  CarbonCarbon::now(), # new Datetime()
"updated_at" => CarbonCarbon::now(), 

]);

if ($query) {
return back()-> with ('success' , 'Review has been successfully submitted');
}else{
return back() -> with ('fail' , 'Something went wrong');
}
}
}

'R_Image'=>'mimes:jpg,png,jpeg|max:5048'mime类型必须为jpg。

最新更新