我的商店控制器代码如下。 imageaes 文件夹保存在公共文件夹和项目文件夹文件中。但无法转换为 int。 在实时数据库中图像保存为sample.jpeg,但它应该是像123456.sample.jpeg这样的代码
public function store(Request $request)
{
$this->validate($request,[
'title' => 'required',
'image' => 'required|image',
'priority' => 'required',
'button_link' => 'nullable|url',
],[ 'title.required' =>"please provide a slider title",'priority.required' =>"please provide a slider priority ",
'image.required' =>"please provide a slider image ",
'image.image' =>"please provide a slider image ",
'button_link.url' =>"please provide a slider button link ",
]);
$slider = new Slider();
$slider->title = $request->title ;
$slider->image = $request->image ;
$slider->buttone_text = $request->buttone_text ;
$slider->button_link = $request->button_link ;
$slider->priority = $request->priority ;
if($request->image > 0){
$image = $request->file('image');
$img = time().'.'. $image->getClientOriginalName();
$location = 'images/sliders/'.$img;
Image::make($image)->save($location);
$slider->image = $img;
}
$slider->save();
return back()->with('success','A new slider has addedd succesfully');
}
请澄清此代码的错误是什么。如果插入图像文件名,例如 123456.sample.jpeg 那么它就可以工作。 但如果我由网站管理员插入它,那么它无法正确存储图像信息。它存储sample.jpeg而不是123456.sample.jpeg。所以它捕获了一个错误 ErrorException 类 Illuminate\Http\UploadedFile 的对象无法转换为 int 那么这背后的问题是什么?
使用 Laravel 请求对象提供的
hasFile
方法代替 if($request->image > 0){
if($request->hasFile('image')) {
$image = $request->file('image');
$img = time() . '.' . $image->getClientOriginalName();
$location = 'images/sliders/' . $img;
Image::make($image)->save($location);
$slider->image = $img;
}