Установка серверной части

Первым шагом при установке Inertia является настройка Вашей серверной инфраструктуры. Inertia поставляется с официальными серверными адаптерами для Laravel и Rails. Для других фреймворков смотрите адаптеры сообщества.

Установка зависимостей

Установите серверные адаптеры Inertia, используя предпочтительный менеджер пакетов для этого языка или платформы.

composer require inertiajs/inertia-laravel
Установить через Composer

Корневой шаблон

Затем настройте корневой шаблон, который будет загружаться при первом посещении страницы. Он будет использоваться для загрузки ресурсов Вашего сайта (CSS и JavaScript), а также будет содержать корневой элемент <div> для загрузки Вашего приложения JavaScript.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
    <link href="{{ mix('/css/app.css') }}" rel="stylesheet" />
    <script src="{{ mix('/js/app.js') }}" defer></script>
  </head>
  <body>
    @inertia
  </body>
</html>
По умолчанию адаптер Laravel будет использовать представление app.blade.php. Этот шаблон должен включать Ваши активы, а также директиву @inertia. Если Вы хотите использовать другое корневое представление, Вы можете изменить его с помощью Inertia::setRootView().

Посредник

Затем установите промежуточное программное обеспечение Inertia. В адаптере Rails этот параметр настраивается автоматически. Однако в Laravel Вам нужно опубликовать посредника HandleInertiaRequests в Вашем приложении, что можно сделать с помощью этой команды:

php artisan inertia:middleware

После создания зарегистрируйте посредника HandleInertiaRequests в Вашем App\Http\Kernel, как последний элемент в Вашей группе посредников web.

'web' => [
    // ...
    \App\Http\Middleware\HandleInertiaRequests::class,
],

Этот посредник предоставляет метод version() для установки версии ресурса и метод share() для установки общих данных. Пожалуйста, посетите эти страницы для получения дополнительной информации.

Создание ответов

Вот и все, Вы готовы перейти на сервер! Отсюда Вы можете начать создавать ответы Inertia. Смотрите страницу ответы для получения дополнительной информации.

use Inertia\Inertia;

class EventsController extends Controller
{
    public function show(Event $event)
    {
        return Inertia::render('Event/Show', [
            'event' => $event->only(
                'id',
                'title',
                'start_date',
                'description'
            ),
        ]);
    }
}