Laraberg + ServerSideRender как вывести view на фронте?

Для вывода представления (view) с использованием Laraberg и ServerSideRender в Laravel, следуйте нижеприведенным шагам:

  1. Установите и настройте пакет Laraberg:
  • Запустите команду composer require yboyacx/laraberg для установки пакета Laraberg.
  • После установки, добавьте LarabergServiceProvider::class в массив providers файла config/app.php, чтобы зарегистрировать сервис-провайдер Laraberg.
  • Затем запустите команду php artisan vendor:publish --tag=laraberg-config, чтобы опубликовать конфигурационный файл Laraberg.
  • Отредактируйте файл config/laraberg.php для настройки Laraberg согласно вашим потребностям.
  1. Создайте представление (view) для отображения формы/редактора:
  • Создайте новый файл представления resources/views/editor.blade.php.
  • Внутри файла представления, используйте laraberg директиву для отображения редактора Laraberg, например: @laraberg.
  1. Создайте контроллер для обработки вывода представления:
  • Запустите команду php artisan make:controller EditorController, чтобы создать новый контроллер.
  • Внутри контроллера EditorController, создайте метод для вывода представления, например:
     public function showEditor()
     {
         return view('editor');
     }
  1. Настройте маршрут для обработки запроса:
  • В файле routes/web.php, добавьте следующий маршрут для обработки запроса:
     Route::get('/editor', [EditorController::class, 'showEditor'])->name('editor');
  1. Реализуйте ServerSideRender для вывода представления на фронте:
  • Создайте новый файл контроллера app/Http/Controllers/Api/RenderController.php.
  • Внутри контроллера RenderController, создайте метод для генерации HTML-кода представления, например:
     public function renderView()
     {
         $content = // получить содержимое редактора из базы данных или любого другого источника данных
         
         return view('render', compact('content'));
     }
  1. Создайте представление для отображения ServerSideRender:
  • Создайте новый файл представления resources/views/render.blade.php.
  • Внутри файла представления, выведите содержимое, полученное от ServerSideRender, например:
     {!! $content !!}
  1. Настройте маршрут для ServerSideRender:
  • В файле routes/web.php, добавьте следующий маршрут для обработки запроса:
     Route::get('/render', [RenderController::class, 'renderView'])->name('render');
  1. Настройте JavaScript для фронтэнда:
  • Создайте новый файл JavaScript resources/js/app.js.
  • Внутри файла JavaScript, используйте AJAX-запрос, чтобы получить HTML-код ServerSideRender, например:
     $.ajax({
         url: '/render',
         method: 'GET',
         success: function(response) {
             $('#render-container').html(response);
         }
     });
  1. Добавьте представление и скрипт фронтэнда на веб-страницу:
  • В шаблоне представления resources/views/layouts/app.blade.php, добавьте следующий код HTML:
     <div id="render-container"></div>
     <script src="{{ mix('js/app.js') }}"></script>
  1. Запустите сервер приложения Laravel:
  • Выполните команду php artisan serve, чтобы запустить сервер веб-приложения Laravel.

Теперь, когда вы перейдете по адресу /editor на вашем веб-сайте, вы увидите Laraberg редактор. При сохранении данных, ServerSideRender будет генерировать HTML-код представления и выводить его на фронте, внутри элемента с id="render-container".