• Час читання ~2 хв
  • 24.05.2023

Laravel Precognition був капітально відремонтований і поставляється з новим поглядом на прогнозування результату майбутнього HTTP-запиту. Команда Laravel взяла оригінальну версію та відшліфувала її, щоб спростити перевірку на стороні інтерфейсу та сервера за допомогою популярних інтерфейсних інструментів:

Laravel Precognition готовий передбачити майбутнє! 🧠

Легко додавайте перевірку в режимі реального часу до своїх програм Laravel на основі JS + Inertia, не дублюючи логіку перевірки на інтерфейсі.

Якщо ви використовуєте Livewire, це вже легко для вас. 😛https://t.co/QSa2RT7bsq pic.twitter.com/td49eDUReQ

— Taylor Otwell 🪐 (@taylorotwell) May 23, 2023

У документах Precognition є інструкції щодо використання Precognition з Vue, React, Vue + Inertia.js та React + Inertia.js для спрощення перевірки. Незалежно від інтерфейсної технології, яку ви використовуєте, маршрути, які підключаються до Pdesign, повинні надавати лише проміжне програмне забезпечення, надане фреймворком:

use App\Http\Requests\CreateUserRequest;
use Illuminate\Foundation\Http\Middleware\HandlePrecognitiveRequests;

Route::post('/users', function (CreateUserRequest $request) {
    // ...
})->middleware([HandlePrecognitiveRequests::class]);

Залежно від вашої інтерфейсної технології, встановлення супутнього модуля NPM робить перевірку за допомогою Precognition легкою. Наприклад, нижче наведено компонент форми з перевіркою розпізнавання за допомогою модуля:

<script setup>
import { useForm } from 'laravel-precognition-vue';

const form = useForm('post', '/users', {
    name: '',
    email: '',
});
const submit = () => form.submit();
</script>

<template>
    <form @submit.prevent="submit">
        <label for="name">Name</label>
        <input
            id="name"
            v-model="form.name"
            @change="form.validate('name')"
        />
        <div v-if="form.invalid('name')">
            {{ form.errors.name }}
        </div>

        <label for="email">Email</label>
        <input
            id="email"
            type="email"
            v-model="form.email"
            @change="form.validate('email')"
        />
        <div v-if="form.invalid('email')">
            {{ form.errors.email }}
        </div>

        <button>Create User</button>
    </form>
</template>

Коли користувач заповнює форму, Precognition оброблятиме вивід перевірки в реальному часі на основі правил перевірки Laravel за laravel-precognition-vue запитом форми на стороні сервера.

Інтерфейс також має деякі корисні методи для визначення перевірки полів та загальних речей про перевірку:

form.hasErrors();
form.valid('email');
form.invalid('email');
form.validating;
form.submit()
    .then(response => {
        form.reset();
        // ...
    })
    .catch(error => {
        // ...
    });

Ознайомтеся з документацією для інших функцій, таких як $request->isPrecognative() запит форми на стороні сервера, який ви можете використовувати для керування побічними ефектами та налаштування правил перевірки.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Про автора CrazyBoy49z
WORK EXPERIENCE
Контакти
Ukraine, Lutsk
+380979856297