Laravel Precognition був капітально відремонтований і поставляється з новим поглядом на прогнозування результату майбутнього HTTP-запиту. Команда Laravel взяла оригінальну версію та відшліфувала її, щоб спростити перевірку на стороні інтерфейсу та сервера за допомогою популярних інтерфейсних інструментів:
— Taylor Otwell 🪐 (@taylorotwell) May 23, 2023Laravel Precognition готовий передбачити майбутнє! 🧠
Легко додавайте перевірку в режимі реального часу до своїх програм Laravel на основі JS + Inertia, не дублюючи логіку перевірки на інтерфейсі.
Якщо ви використовуєте Livewire, це вже легко для вас. 😛https://t.co/QSa2RT7bsq pic.twitter.com/td49eDUReQ
У документах 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()
запит форми на стороні сервера, який ви можете використовувати для керування побічними ефектами та налаштування правил перевірки.