Skip to content

Instantly share code, notes, and snippets.

@lucasRolff
Forked from x7ryan/ExampleUsage.php
Created April 27, 2022 18:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lucasRolff/5d9eac723fe0cd2c51ef809342177454 to your computer and use it in GitHub Desktop.
Save lucasRolff/5d9eac723fe0cd2c51ef809342177454 to your computer and use it in GitHub Desktop.
A simple Laravel Livewire trait to include rules and messages from a Laravel FormRequest Class. Simply use this trait and define a protected property useFormRequest as a reference to the FormRequest class you wish to use. This can be used to share validation logic between livewire components and traditonal Laravel controllers, for example when u…
<?php
namespace App\Http\Livewire;
use Livewire\Component;
use App\Http\Livewire\Concerns\FormRequest;
class ExampleUsage extends Component
{
use FormRequest;
protected $useFormRequest = \App\Http\Requests\TestRequest::class;
}
<?php
namespace App\Http\Livewire\Concerns;
use Livewire\Exceptions\PropertyNotFoundException;
trait FormRequest
{
protected function rules()
{
if (!isset($this->useFormRequest)) {
throw new PropertyNotFoundException('useFormRequest', get_class());
}
return (new $this->useFormRequest)->rules();
}
protected function messages()
{
if (!isset($this->useFormRequest)) {
throw new PropertyNotFoundException('useFormRequest', get_class());
}
return (new $this->useFormRequest)->messages();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment