Сразу напишу что Laravel только изучаю и возможно для знатоков лары этот вопрос смешной.
Сейчас делаю загрузки картинки для поста
в форму добавления поста добавил инпут загрузки и enctype="multipart/form-data"
<div class="form-group">
<input type="file" name="img">
</div>
далее после проверки полей в реквесте
'title' => 'required|min:5|max:200|unique:blog_posts',
'slug' => 'max:200',
'excerpt'=> 'max:250',
'content_raw' => 'required|string|max:15000|min:3',
'category_id'=> 'required|integer|exists:blog_categories,id',
'img'=> 'required|image',
отсылаю их в контроллер
$data = $request->input();
пробую распечатать в dd($data)
в контроллере
но там поля картинки img нет
Я весь день бился с формой думал что она не посылает файл, но когда попробовал доставать его отдельно то получилось. Сейчас я его достал и дописал в массив данных
$data = $request->input();
$path = $request->file('img')->store('upload', 'public');
$data = array_add($data, 'img', $path);
dd($data);
Вобщем сейчас все нормально срабатывает, но ведь правильно логику обработки картинки закинуть обссервер. я в нем генерирую слаг, работаю с текстом и другие мелочи произвожу.
сейчас код контроллера такой
public function store(BlogPostCreateRequest $request)
{
$data = $request->input();
$path = $request->file('img')->store('upload', 'public');
$data = array_add($data, 'img', $path);
$item = (new BlogPost())->create($data);
}
Вопрос , как правильно перенести и стоит ли это делать? и почему $data = $request->input(); не выводит картинку?