vue-laravel-api-forms
v0.0.1
Published
Inertia-like form API using axios for Vue 3 and Laravel
Maintainers
Readme
vue-laravel-api-forms
A simple, Inertia-like form API using axios for Vue 3 and Laravel applications.
Features
- Inertia-like API: Similar API to Inertia.js forms with
post(),put(),patch(),delete()methods - Automatic Laravel validation error handling: Automatically populates
form.errorsfrom Laravel 422 responses - Reactive data: Uses Vue 3's reactive system for form data and errors
- Processing state: Built-in loading states with
form.processing - Success states: Tracks successful submissions with
form.wasSuccessfulandform.recentlySuccessful
Installation
npm install vue-laravel-api-formsUsage
Basic Example
import { useFormApi } from 'vue-laravel-api-forms';
export default {
data() {
return {
form: useFormApi({
name: '',
email: '',
password: ''
})
}
},
methods: {
async submit() {
await this.form.post('/api/users', {
onSuccess: (data) => {
console.log('User created:', data);
}
});
}
}
}Template Usage
<template>
<form @submit.prevent="submit">
<input v-model="form.data.name" :class="{ 'error': form.errors.name }" />
<span v-if="form.errors.name">{{ form.errors.name }}</span>
<input v-model="form.data.email" :class="{ 'error': form.errors.email }" />
<span v-if="form.errors.email">{{ form.errors.email }}</span>
<button type="submit" :disabled="form.processing">
{{ form.processing ? 'Submitting...' : 'Submit' }}
</button>
</form>
</template>API Reference
Methods
post(url, options)- POST requestput(url, options)- PUT requestpatch(url, options)- PATCH requestdelete(url, options)- DELETE requestget(url, options)- GET requestreset(...fields)- Reset form data to original valuesclearErrors(...fields)- Clear validation errorssetError(field, message)- Set a validation errorhasErrors()- Check if form has any errorsinvalid(field)- Check if a specific field has an errorvalidate(field)- Compatibility method (no-op)
Properties
data- Reactive form dataerrors- Reactive validation errors objectprocessing- Boolean indicating if request is in progresswasSuccessful- Boolean indicating if last request was successfulrecentlySuccessful- Boolean indicating recent success (clears after 2s)
Laravel Integration
FormApi automatically:
- Sets CSRF tokens from meta tags
- Handles Laravel validation errors (422 responses)
- Sets appropriate headers for Laravel APIs
