Как добавить картинку на сайт laravel?

Для добавления картинки на сайт в Laravel, вам потребуется выполнить несколько шагов. Здесь я опишу основные этапы настройки загрузки и отображения изображений в Laravel.

1. Создайте миграцию для добавления столбца в базу данных:
Откройте командную строку или терминал, перейдите в корневую папку вашего проекта Laravel и выполните следующую команду:

   php artisan make:migration add_image_to_table --table=table_name

Замените table_name на имя таблицы, к которой вы хотите добавить столбец для хранения изображений.

2. Откройте только что созданную миграцию (она будет находиться в папке database/migrations) и добавьте следующий код в метод up():

   Schema::table('table_name', function (Blueprint $table) {
       $table->string('image')->nullable();
   });

Этот код добавляет строковый столбец image в указанную таблицу.

3. Выполните миграцию для создания столбца в базе данных:
Из командной строки или терминала в корневой папке вашего проекта Laravel выполните команду:

   php artisan migrate

Это создаст новый столбец image в таблице, указанной в миграции.

4. Создайте контроллер для обработки загрузки изображений:
Откройте командную строку или терминал, перейдите в корневую папку вашего проекта Laravel и выполните следующую команду:

   php artisan make:controller ImageController

Эта команда создаст новый контроллер ImageController.

5. Откройте только что созданный контроллер (он будет находиться в папке app/Http/Controllers) и добавьте следующие методы:

   use IlluminateHttpRequest;
   use IlluminateSupportFacadesStorage;

   public function upload(Request $request)
   {
       $path = $request->file('image')->store('public/images');
       $url = Storage::url($path);

       return $url;
   }

   public function show($url)
   {
       return Storage::response($url);
   }

Метод upload(Request $request) отвечает за обработку загрузки изображений, сохранение их на сервере и возврат URL-адреса, по которому изображение будет доступно.

Метод show($url) возвращает изображение по указанному URL-адресу.

6. Откройте файл маршрутов (routes/web.php) и добавьте следующие маршруты:

   Route::post('/image/upload', 'ImageController@upload')->name('image.upload');
   Route::get('/image/{url}', 'ImageController@show')->name('image.show');

Эти маршруты определяют, как обрабатывать запросы для загрузки и отображения изображений.

7. В представлении, где вы хотите отображать картинку, добавьте следующий код:

   <form action="{{ route('image.upload') }}" method="POST" enctype="multipart/form-data">
       @csrf
       <input type="file" name="image">
       <button type="submit">Загрузить</button>
   </form>

Это создает форму для выбора файла и кнопку "Загрузить", которая отправляет выбранный файл на сервер.

8. Для отображения изображения используйте следующий код:

   <img src="{{ route('image.show', $url) }}" alt="Изображение">

Замените $url на фактический URL-адрес изображения.

Вот и все! Теперь ваш сайт Laravel может загружать и отображать изображения. Учтите, что этот код только основа, и вы можете настраивать его под свои потребности.