for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace ProtoneMedia\LaravelFormComponents\Components;
use Illuminate\Contracts\Support\MessageBag;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Str;
use Illuminate\Support\ViewErrorBag;
trait HandlesValidationErrors
{
public $showErrors = true;
/**
* Returns a boolean wether the given attribute has an error
* and the should be shown.
*
* @param string $name
* @param string $bag
* @return boolean
*/
public function hasErrorAndShow(string $name, string $bag = 'default'): bool
return $this->showErrors
? $this->hasError($name, $bag)
: false;
}
* Getter for the ErrorBag.
* @return \Illuminate\Contracts\Support\MessageBag
protected function getErrorBag(string $bag = 'default'): MessageBag
$bags = View::shared('errors', fn () => request()->session()->get('errors', new ViewErrorBag));
return $bags->getBag($bag);
* Returns a boolean wether the given attribute has an error.
public function hasError(string $name, string $bag = 'default'): bool
$name = str_replace(['[', ']'], ['.', ''], Str::before($name, '[]'));
$errorBag = $this->getErrorBag($bag);
return $errorBag->has($name) || $errorBag->has($name . '.*');