我有多个图片上传器,我只希望第一张图片获得真实值,而其他则为假。我的意思是我有数据库字段名称'isPrimary',所以当我上传多个图像时,我只希望第一个图像获得真值,而其他图像获得假值。
<div class="col-lg-12 p-t-20">
<label class="control-label col-md-3">Upload Room Photos</label>
<input type = "file" id = "image" name="image[]" multiple class="file" data-overwrite-initial="false"
data-min-file-count="1">
</div>
这是我的图片存储控制器
if($request->hasfile('image')) {
$image = $request->image;
if(count($image) === 1){
$isPrime = $dataa['isPrimary'] = true;
}else{
///So here i need logic to make ('isPrimary') field to be true in only first image when there is multiple images is uploaded
}
foreach ($image as $photo) {
// dd($photo);
$name = $photo->getClientOriginalName();
$filename = $photo->move(('storage/images/room_types/'), $name);
//
$dataa = [
'room_type_id' => $room_type->id,
'image' => $filename,
'isPrimary'=>$isPrime,
];
Image::create($dataa);
}
}
对不起,我的英语不好,因为这是我的第二语言。 谢谢,谢谢。
答案 0 :(得分:0)
尝试一下
foreach ($image as $photo) {
$name = $photo->getClientOriginalName();
$filename = $photo->move(('storage/images/room_types/'), $name);
$dataa = [
'room_type_id' => $room_type->id,
'image' => $filename,
'isPrimary'=> (\Arr::first($image) == $photo) ? true : false,
];
Image::create($dataa);
}
答案 1 :(得分:0)
$is_prime = true;
foreach ($image as $photo) {
$name = $photo->getClientOriginalName();
$filename = $photo->move(('storage/images/room_types/'), $name);
$dataa = [
'room_type_id' => $room_type->id,
'image' => $filename,
'isPrimary'=>$isPrime,
];
$is_prime = false;
}
Image::create($dataa);