РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗ppinPmRcCr 31 of 41 menu
◀ ▶

Добавление записи в Inertia

Представим, что новую запись некуда внести: список только показывает то, что уже лежит в таблице. Человек не может добавить заголовок, не уходя с экрана.

Форма на том же экране отправляет заголовок на сервер. Модель Post пишет новую строку, а контроллер возвращает человека на ту же страницу методом back. Список уже содержит свежую запись вместе со старыми.

Давайте разрешим массовое заполнение заголовка в модели:

<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Post extends Model { protected $fillable = [ 'title', ]; } ?>

Давайте опишем адрес списка и приём новой записи:

<?php use App\Models\Post; use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; use Inertia\Inertia; Route::get('/posts', function () { return Inertia::render('Posts/Index', [ 'posts' => Post::orderBy('id')->get([ 'id', 'title', ]), ]); }); Route::post('/posts', function (Request $request) { Post::create([ 'title' => $request->string('title'), ]); return back(); }); ?>

Давайте выведем список и форму с одним полем заголовка:

<script setup> import { Form } from '@inertiajs/vue3' defineProps({ posts: Array, }) </script> <template> <div v-for="post in posts" :key="post.id" > {{ post.title }} </div> <Form action="/posts" method="post"> <input type="text" name="title" /> <button type="submit">Save</button> </Form> </template>

Сделайте добавление работника с экрана списка так, чтобы его имя сразу было видно в списке.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить