Я хочу добавить сообщения с несколькими изображениями, например, у меня есть страница, когда пользователь нажимает + он будет добавлять сообщения с изображениями
public function store(Request $request) {
$this->validate($request, [
'blocks.*' => 'required',
'blocks.*.position' => 'required',
'blocks.*.block_title' => 'required|max:100',
'blocks.*.block_text' => 'required|max:500',
'images' => 'required',
'images.*' => '|mimes:jpeg,jpg,png,gif,svg|max:10240',
]);
// ...
}
Здесь я создал переменную блоков
$blocks = $request->blocks;
foreach ($blocks as $block) {
$newsBlock = Block::create([
'news_id' => $news->id,
'position' => $block['position'],
'block_title' => $block['block_title'],
'block_text' => $block['block_text']
]);
$newsBlock->save();
// ...
}
Здесь переменная для хранения изображений, но все блоки имеют одинаковые изображения
// ....
$images = $request->images;
foreach ($images as $image) {
$randomString = uniqid();
$filename = $randomString . $image->getClientOriginalName();
$filePath = 'uploads/blocks/' . $newsBlock->id . '/';
Storage::disk('local')->put($filePath, $filename);
$blockImage = Image::create([
'block_id' => $newsBlock->id,
'image_path' => $filePath.$filename
]);
$blockImage->save();
}
}
return response()->json($news, 201);
}