Ответы

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

В Вашем контроллере укажите как имя компонента страницы JavaScript, так и любые свойства (данные) для страницы.

В этом примере мы передаем единственное свойство, называемое event, которое содержит четыре атрибута (id, title, start_date и description) компоненту страницы Event/Show.

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'),
        ]);

        // Alternatively, you can use the inertia() helper
        return inertia('Event/Show', [
            'event' => $event->only('id', 'title', 'start_date', 'description'),
        ]);

    }
}
Чтобы сделать ответ Inertia, используйте функцию рендеринга Inertia. Этот метод принимает имя компонента и позволяет передавать свойства и просматривать данные.
Чтобы страницы загружались быстро, возвращайте только минимум данных, необходимых для страницы. Также имейте в виду, что все данные, возвращаемые контроллерами, будут видны на стороне клиента, поэтому не забудьте опустить конфиденциальную информацию.

Данные корневого шаблона

Бывают ситуации, когда Вы можете захотеть получить доступ к своим реквизитам в корневом шаблоне Blade. Например, Вы можете добавить метатеги описания, метатеги карточек Twitter или метатеги Facebook Open Graph.

<meta name="twitter:title" content="{{ $page['props']['event']->title }}">
Эти свойства доступны через переменную $page.

Иногда Вы можете даже захотеть предоставить данные, которые не будут отправлены Вашему компоненту JavaScript.

return Inertia::render('Event', ['event' => $event])
    ->withViewData(['meta' => $event->meta]);
Сделайте это с помощью метода withViewData().

Затем Вы можете получить доступ к этой переменной как к обычной переменной шаблона.

<meta name="description" content="{{ $meta }}">

Максимальный размер ответа

Чтобы включить навигацию по истории на стороне клиента, все ответы сервера Inertia сохраняются в состоянии истории браузера. Хорошо знать, что некоторые браузеры накладывают ограничение на размер данных, которые могут быть там сохранены. Например, Firefox имеет ограничение на размер в 640 тыс. символов (и выдает ошибку NS_ERROR_ILLEGAL_VALUE, если Вы его превышаете). Обычно это намного больше, чем Вам когда-либо понадобится, но хорошо знать об этом при создании приложения Inertia.