Re: [laravel-brasil] validar com objetos Request

250 views
Skip to first unread message
Message has been deleted

Fabrício Muniz

unread,
Dec 8, 2015, 2:36:05 PM12/8/15
to laravel...@googlegroups.com
Toma: http://laravel.com/docs/5.1/validation#rule-unique

Navegue até "Forcing A Unique Rule To Ignore A Given ID"

Boa leitura :D

Fabrício

Em 8 de dezembro de 2015 17:28, Flávio Alves <flavioa...@gmail.com> escreveu:
Galera boa tarde, fiz uma validação com objetos Request para cada tabela do meu banco, então coloquei a seguinte validação para uma tabela:

public function rules()
    {
        return [
            'numero_da_atividade' => 'required|unique:atividades',
        ];
    }


Então ele verifica na minha tabela atividade se já existe um registro com esse número e ta funcionando de boa. Mas no editar ele não deixa alterar o registro que tem o número pois fica validando. Como posso resolver isso.

att,

--
Você recebeu essa mensagem porque está inscrito no grupo "Laravel Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para laravel-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Flávio Alves

unread,
Dec 8, 2015, 2:45:52 PM12/8/15
to Laravel Brasil
Fabrício vi aqui na documentação que posso mandar o id do registro como mostra  a sessão: Forcing A Unique Rule To Ignore A Given ID:
o que não entendi é como passar o objeto $user no caso do exemplo da documentação pra o arquivo UsersRequest.

att,

Fabrício Muniz

unread,
Dec 8, 2015, 3:13:22 PM12/8/15
to laravel...@googlegroups.com
Você está manipulando um objeto 'request', lembra?
Logo:
  • dd($this->request);
  • $this->request->get('id');
  • $product = Product::find($this->request->get('id'));
funcionará perfeitamente.

Flávio Alves

unread,
Dec 9, 2015, 7:14:09 AM12/9/15
to Laravel Brasil
Olá Fabrício obrigado pela colaboração eu fiz como você falou, mas tive um erro de SQL não entendi o porque pois ele diz que não encontrou a coluna numero_atividade na tabela atividades e eu tenho certeza que a mesma existe. O erro é:

SQLSTATE[42S22]: Column not found: 1054 Unknown column ' numero_atividade' in 'where clause' (SQL: select count(*) as aggregate from `atividades` where ` numero_atividade` = 1 and `id` <> 1)

Ivo Sestren Junior

unread,
Dec 9, 2015, 7:41:51 AM12/9/15
to laravel...@googlegroups.com
Flavio,

Tens um espaço antes do numero_atividade no seu where.

Flávio Alves

unread,
Dec 9, 2015, 7:46:51 AM12/9/15
to Laravel Brasil
Ivo muito obrigado. E Fabrício também muito obrigado pela colaboração dos dois. Agradecido.

Flávio Alves

unread,
Jan 4, 2016, 7:36:31 AM1/4/16
to Laravel Brasil
$rulesEdit =  [
            'nome' => 'required|max:100',
            'formação' => 'required',
            'curso' => 'required',
            'rg' => 'required',
            'data_de_matrícula' => 'required',
            'data_de_nascimento' => 'required',
            'endereço' => 'required|max:150',
            'bairro' => 'required',
            'cidade' => 'required',
            'cep' => 'required',
            'email' => 'required|email',
            'uf' => 'required',
            'celular' => 'required',
            'status' => 'required',
            'cpf' => 'required|unique:professores,cpf,'.$professor->id
        ];

        $validator = Validator::make(Input::all(), $rulesEdit);

        if($validator->fails()){
            return redirect('professores/editar/'.$professor->id)->withErrors($validator);
        }

Pessoal segundo a documentação na parte de: Forcing A Unique Rule To Ignore A Given ID:
Gostaria de saber se estou fazendo algo errado aqui na validação do cpf na variável rulesEdit, estou editando o cpf que é único mas na hora de editar ta disparando que o cpf está em uso.

Neto

unread,
Jan 4, 2016, 8:11:48 AM1/4/16
to Laravel Brasil
Mas, de acordo com a própria documentação, você precisa informar o id a ser ignorado:


Forcing A Unique Rule To Ignore A Given ID
--

Fabrício Muniz

unread,
Jan 4, 2016, 8:20:44 AM1/4/16
to laravel...@googlegroups.com
Neto, ele está passando isso em $professor->id.
Não vejo erro na validação. Debuga o valor de $professor->id.

Flávio Alves

unread,
Jan 4, 2016, 8:24:32 AM1/4/16
to Laravel Brasil
Fabrício e Neto obrigado pela colaboração, debuguei Fabrício e estou recebendo normalmente o valor do id assim como as demais informações, não sei porque não está validando.

Flávio Alves

unread,
Jan 4, 2016, 8:42:55 AM1/4/16
to Laravel Brasil
Fabrício e Neto peço desculpas a vocês por minha falta de atenção mas antes de aplicar a validação, tinha dois registros com o mesmo cpf em minha tabela por isso que dava o erro pois mesmo que ele ignorasse o id da consulta tinha outro registro com o mesmo cpf, peço desculpas e agradeço a atenção.

Fabrício Muniz

unread,
Jan 4, 2016, 10:48:13 AM1/4/16
to laravel...@googlegroups.com
heisenbug

Neto

unread,
Jan 4, 2016, 10:57:26 AM1/4/16
to laravel...@googlegroups.com
beleza.
Dica: deixe o campo CPF como Unique, para impedir no banco que esses registros se repitam

Flávio Alves

unread,
Jan 4, 2016, 11:23:09 AM1/4/16
to Laravel Brasil
ele é unique, só n tinha validação ainda.

Fabrício Muniz

unread,
Jan 4, 2016, 11:27:07 AM1/4/16
to laravel...@googlegroups.com
Flávio, ele refere-se ao banco de dados.

Flávio Alves

unread,
Jan 4, 2016, 11:28:03 AM1/4/16
to Laravel Brasil
aa blz. Vlw 
Reply all
Reply to author
Forward
0 new messages