Параметр адреса в Inertia
Давайте рассмотрим ситуацию, когда у записи должен быть свой адрес с номером. Один общий экран на все записи не подходит: по ссылке непонятно, какую из них открыли.
В Laravel номер берут из сегмента
адреса. Метод render
передаёт на страницу данные
именно для этой записи.
Давайте опишем маршрут с параметром и небольшой набор заголовков по номеру:
<?php
use Illuminate\Support\Facades\Route;
use Inertia\Inertia;
Route::get('/posts/{post}', function (string $post) {
$titles = [
'1' => 'News',
'2' => 'Notes',
];
return Inertia::render('Posts/Show', [
'title' => $titles[$post] ?? 'Unknown',
]);
});
?>
Шаблон записи выводит заголовок из пропса:
<script setup>
defineProps({
title: String,
})
</script>
<template>
<h1>{{ title }}</h1>
</template>
С другой страницы давайте добавим ссылку на первую запись:
<script setup>
import { Link } from '@inertiajs/vue3'
</script>
<template>
<h1>Home</h1>
<Link href="/posts/1">News</Link>
</template>
Сделайте адрес /workers/3,
по которому открывается экран
с именем работника,
и ссылку на этот адрес
с другой страницы.