Validação em 2023 com Laravel 10
Olá.
Hoje em dia essa ainda é a melhor abordagem para esse tipo de validação ?
Olá, Thiago!
Como vai?
É sim, sempre trabalhar com Form Request, e se a validação for muito personalizada, criar um custom validator, igual criamos.
Qualquer dúvida amigo, me retorna. Beleza?
A minha dúvida era mais em relação ao custom validator.
Gostaria de saber se hoje em dia não dá pra fazer isso de forma mais fácil, dentro do form request mesmo, por exemplo...
Não, como é algo muito especifico, realmente precisa criar uma rule personalizada! :-)
Minha implementação ficou assim:
class TenantUnique implements ValidationRule
{
private $table, $column, $columnValue;
public function __construct($table, $column = null, $columnValue = null)
{
$this->table = $table;
$this->column = $column;
$this->columnValue = $columnValue;
}
/**
* Run the validation rule.
*
* @param \Closure(string): \Illuminate\Translation\PotentiallyTranslatedString $fail
*/
public function validate(string $attribute, mixed $value, Closure $fail): void
{
$tenant = app(ManagerTenant::class)->getTenantIdentify();
$result = DB::table($this->table)
->where($attribute, $value)
->where('tenant_id', $tenant)
->first();
if (!is_null($result) && $result->{$this->column} != $this->columnValue) {
$fail('O valor do '.$attribute.' já está em uso.');
}
}
}
Muito bom, parabéns!!
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!