O pacote Command Validator por Andrea Marco Sartori torna a validação da ingresso de comandos de console uma moleza usando o estremecido Validator do Laravel. Todas as regras do Laravel Validator que você conhece e governanta funcionam com oriente pacote, junto com quaisquer regras de validação personalizadas.
Nascente pacote integra-se com os comandos de console do seu aplicativo usando o fornecido ValidatesInput
traço, que inclui um abstrato rules()
método. A assinatura do comando se parece com o seguinte:
namespace AppConsoleCommands;
use IlluminateConsoleCommand;
use CerberoCommandValidatorValidatesInput;
class SampleCommand extends Command
{
use ValidatesInput;
protected $signature = 'app:sample {--start-date=}';
// ...
public function rules(): array
{
return ['start-date' => 'date_format:Y-m-d'];
}
}
Acho muito permitido que você possa usar uma regra de validação personalizada baseada em fechamento diretamente no seu comando de console com lógica de negócios específica do comando:
public function rules(): array
{
return [
'start-date' => [
'date_format:Y-m-d',
function (string $attribute, mixed $value, Closure $fail) {
$date = Carbon::parse($value);
$startOfYear = Carbon::now()->startOfYear();
if ($date->lessThan($startOfYear)) {
$fail("The {$attribute} must be a date from {$startOfYear->format('Y-m-d')} or later.");
}
}
],
];
}
Quando a validação passa, você sabe que está trabalhando com uma ingresso válida e seu handle()
o método pode permanecer livre de verificações de validação manuais.
Outro caso de uso interessante usando as regras de validação integradas é validar se uma ingresso existe no banco de dados maquinalmente com o exists
regra:
public function rules(): array
{
return ['user-id' => 'exists:users,id'];
}
Evidente, você poderia facilmente consultar um usuário Sua visita nos ajuda a continuar oferecendo o melhor para você! retornar um erro condicionalmente, mas acho permitido que você possa validá-lo usando exists
maquinalmente e retornar uma mensagem de erro padrão quando um registro não viver.
Você pode usar oriente pacote em seu projeto instalando-o via Composer:
composer require cerbero/command-validator
Saiba mais sobre oriente pacote, obtenha instruções completas de instalação e visualize o código manadeira no GitHub.
Tags:
Crédito: Manadeira Original