/
alexey92
/
test
Обзор
Документация
Войти
/
alexey92
/
test
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
app/Http/Controllers/PostController.php
66 строк
3 KB
alexeylavrentev
new test
07 ноя 2024, 14:33
07 ноя 2024, 14:33
8de66b9
Код
Авторство
О чём код?
<?php namespace App\Http\Controllers; use App\Models\Photo; use App\Models\Post; use Illuminate\Http\Request; class PostController extends Controller { public function createPost(Request $request) { // Валидация входных данных $request->validate([ 'body' => 'required', 'photos' => 'array', 'photos.*' => 'image|mimes:jpeg,png,jpg,gif,svg|max:5048' ]); // Создание нового поста $post = new Post(); $post->body = $request->input('body'); $post->user_id = auth()->user()->id; // или каким-то другим способом определите текущего пользователя $post->save(); // Проверяем, загружены ли фотографии if ($request->hasfile('photos')) { // Пробегаемся по каждой загруженной фотографии foreach ($request->file('photos') as $photo) { // Указываем путь к папке, где будут сохраняться изображения $folderPath = public_path('/storage/posts/'); // Генерируем уникальное имя для изображения $imageName = uniqid() . '.jpeg'; // Создаем полный путь до изображения $imageFullPath = $folderPath.$imageName; // Сохраняем изображение на сервере $success = $photo->move($folderPath, $imageName); // Если сохранение прошло успешно if ($success) { // Создаем новый объект модели "Photo" $photomodel = new Photo(); // Устанавливаем связь с объектом "Post" $photomodel->post_id = $post->id; // Устанавливаем имя файла $photomodel->filename = '/storage/posts/' . $imageName; // Устанавливаем id пользователя, который загрузил фотографию $photomodel->user_id = auth()->id(); // Сохраняем модель в базе данных $photomodel->save(); } } } return back(); } }