andersao / andersao/l5-repository

Como validar campos Morph com Validators

Offen
#480 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
PHP
Sterne
4.2k
Forks
880
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Minha Stack:
- Laravel 5.5
-> Pacote prettus/l5-repository: 2.6.*

Situação:
Eu tenho as seguintes rotas:

```
Route::resource('pessoas-fisicas', 'PessoasController',[
'except' => ['create', 'edit']
]);

Route::resource('pessoas-fisicas', 'PessoasFisicasController',[
'except' => ['create', 'edit']
]);

Route::resource('pessoas-juridicas', 'PessoasJuridicasController',[
'except' => ['create', 'edit']
]);

```
A rota de pessoas-fisicas possui suas regras de validação, tudo ok, tudo funcionando.
A rota de pessoas-juridicas possui suas regras de validação, tudo ok, tudo funcionando.

Conforme citado, estou utilizando o pacote l5-repository, optei por trabalhar com os Validators do próprio pacote. Minha migration está da seguinte forma:

![captura de tela de 2017-12-01 14-04-27](https://user-images.githubusercontent.com/16837004/33492298-c9d4ad0a-d6a3-11e7-8643-fe9b08bc8984.png)

Objetivo:
Deverá primeiro ser cadastrado o tipo de pessoa, ou seja, primeiro o meu serviço cadastra pessoa_fisica ou pessoa_juridica. Após isso, ele deverá cadastrar a pessoa.

Dúvida:
O problema é que eu tenho está em dois tipos de validação, são eles:

1° Em pessoa_type, eu quero que ele execute uma validation do tipo "in", pegando os valores de uma constante direto do model. Exemplo:

```
'pessoa_type' => [
'required',
Rule::in(Pessoa::TYPE),
],
```

Onde, Pessoa é o meu modelo e a constante TYPE retorna um array com as opções disponíveis.

2° Em pessoa_id, eu quero que ele execute uma validation do tipo "exists", pegando o id informado na request e validando de acordo com o input pessoa_type.
Exemplo:

```
$model = $request['pessoa_type'];

'pessoa_id' => [
'required',
"exists:$model,id"
],

```
Como está meu código hoje:
![captura de tela de 2017-12-01 14-24-49](https://user-images.githubusercontent.com/16837004/33492319-d8c7aa60-d6a3-11e7-8cad-b3e777b4e346.png)

3° Eu preciso que a Rule::in de pessoa_type rode antes da segunda regra do id, neste caso basta colocar essa regra antes?, que ela será executada e validada antes que a de pessoa_id? (Repare que na imagem anterior isso não ocorre).

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.