Laravel как проверить массив внутри массива и создать модель - PullRequest
1 голос
/ 12 января 2020

Я не могу получить доступ к массиву изображений, которые находятся внутри массива объектов.

$this->validate($request, [
   'blocks.*' => 'array|required',
   'blocks.*.position' => 'required|integer',
   'blocks.*.block_title' => 'required|max:100',
   'blocks.*.block_text' => 'required|max:500',
   'block.*.images' => 'required',
   'block.*.images.*' => '|mimes:jpeg,jpg,png,gif,svg|max:10240',
]);

Сбой также возможен в следующем фрагменте:

$blocks = $request->blocks;
foreach ($blocks as $block) {

$images = $request->file('blocks.images');

Я также попробовал следующее:

$images =$block['images']; //not work
$images = $block['blocks.images']; // not work

Я хочу создать блоки с изображениями.

1 Ответ

0 голосов
/ 13 января 2020

В запросе у вас должно быть 'blocks.*.images' и 'blocks.*.images.*' вместо 'block.*.images' и 'block.*.images.*'.

Чтобы получить изображения, которые вы можете попробовать:

$data = $request->all();
$blocks = $data['blocks'];
foreach ($blocks as $block) {
   foreach ($block['images'] as $image) {
       // $image should be a file
       $file_name = $image->getClientOriginalName();
       $file = Storage::putFileAs(
                    'path-to-save-file-at', $image, $file_name
               );

   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...