labrodev/contactable
Configurable Livewire contact form for Laravel. Define fields in config, optionally persist submissions to an Eloquent model, and send notifications via mail, log, or webhook. Supports published views and translation-ready labels/messages.
ContactRequest table) and handle schema evolution.Contactable (e.g., global scripts, middleware)?Contactable (e.g., "Contact Us" page).ContactFormRequest) in favor of Contactable’s config-driven approach.mail:send, events) to avoid blocking.FormRequest classes if dynamic rules are needed (e.g., after rules based on other fields).Livewire Tables or Livewire Alpine.@livewireScripts/@livewireStyles are loaded before the form component.ContactRequest table (or extend an existing one). Example:
Schema::create('contact_requests', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email');
$table->text('message');
$table->ipAddress('ip')->nullable();
$table->timestamps();
});
config/contactable.php.resources/views/contact.blade.php):
@livewire('contact-form')
namespace App\Livewire;
use Labrodev\Contactable\ContactForm;
class ContactForm extends ContactForm {}
horizon:logs for queued jobs).config/contactable.php only.notify config or creating a custom channel.labrodev/contactable for compatibility).config/contactable.php or using environment-specific configs.storage/logs/livewire.log) for component errors.storage/logs/laravel.log) and test SMTP.config/contactable.php or extend with custom FormRequest validation.How can I help you explore Laravel packages today?