Почему возникает ошибка при загрузке картинки?

Рейтинг: 0Ответов: 1Опубликовано: 11.03.2023

Делаю на ларавел 8. Есть форма, в которой есть поле для фото - foto_main.

В контроллере пишу такой код:

 public function store(Request $request)
    {
        $params = $request->all();
        unset($params['foto_main']);

        if ($request->has('foto_main')) {
            $params['foto_main'] = $request->file('foto_main')->store('areas');
        }

        Area::create($params);
        return redirect()->route('admin.area.index');
    }

директории "areas" нет в каталоге storage. Возникает ошибка

Call to a member function store() on null

. На строке где из request поля картинки (foto_main) пытаюсь записать в store. Почему так происходит? Как корректно записать картинку в каталог storage\app\public\areas?

Ответы

▲ 0

По умолчанию в Laravel используется хранилище local, это папка storage/app

Для сохранения файла в каталоге storage\app\public\areas, необходимо использовать public. Попробуйте создать символическую ссылку на public внутри storage:

php artisan storage:link

А потом попробуйте дописать код так:

$params['foto_main'] = $request->file('foto_main')->store('areas', 'public');