В Вашем контроллере укажите как имя компонента страницы 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'),
]);
}
}
Бывают ситуации, когда Вы можете захотеть получить доступ к своим реквизитам в корневом шаблоне Blade. Например, Вы можете добавить метатеги описания, метатеги карточек Twitter или метатеги Facebook Open Graph.
<meta name="twitter:title" content="{{ $page['props']['event']->title }}">
Иногда Вы можете даже захотеть предоставить данные, которые не будут отправлены Вашему компоненту JavaScript.
return Inertia::render('Event', ['event' => $event])
->withViewData(['meta' => $event->meta]);
Затем Вы можете получить доступ к этой переменной как к обычной переменной шаблона.
<meta name="description" content="{{ $meta }}">
Чтобы включить навигацию по истории на стороне клиента, все ответы сервера Inertia сохраняются в состоянии истории браузера. Хорошо знать, что некоторые браузеры накладывают ограничение на размер данных, которые могут быть там сохранены. Например, Firefox имеет ограничение на размер в 640 тыс. символов (и выдает ошибку NS_ERROR_ILLEGAL_VALUE
, если Вы его превышаете). Обычно это намного больше, чем Вам когда-либо понадобится, но хорошо знать об этом при создании приложения Inertia.