Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

Atualizar input de formulario

Bom dia, pessoal. Parece uma duvida meio boba, mas e muito chata e não consigo resolver. Sempre que submit um formulário, e ele vai executar uma ação de cadastro no banco de dados eu valido os campos utilizando um formRequest, só que ao retornar um erro ele limpa os campos do input tornando a navegação ruim e gostaria que ela não limpa-se os campos ou ele retorna-se os valores já inseridos pelo usuário, tipo com o código abaixo, mas não consigo selecionar os campos e atualizá-los, ainda tenho bastante dificuldade em php.

uso esse código no final da view

<?php foreach ($errors->all() as $error): ?>
    <div class="alert alert-danger"><strong>Error! </strong><?= $error ?></div>
  <?php endforeach; ?>

  <?php if (empty($errors)): ?>
    <div class="alert alert-success">
      <strong>Sucesso! </strong>
          O Usuário <?= old('nome') ?> foi adicionado.
    </div>
  <?php else: ?>
      aqui ele deveria atualizar os input com old('nome'), mas como selecionar os     inputs ???
  <?php endif; ?>
8 respostas

Olá João.

Você pode mostrar mais detalhes da view, como os inputs? E o controller por favor?

Abraço.

Oi João, tudo bom?

Para que os dados estejam disponiveis na tela com erro de validação a gente precisa repassar a entidade no controller. Como o Tomás disse, se voce compartilhar com a gente o código do controller a gente consegue ajudar melhor =)

Abraço!

esse e o codigo da view @extends('principal')

@section('conteudo')

Nome
Endereço
Referência
Telefone
Email
Senha

<?php foreach ($errors->all() as $error): ?>

Error! <?= $error ?>
<?php endforeach; ?>

<?php if (empty($errors)): ?>

Sucesso! O Usuário {{old('nome')}} foi adicionado.
<?php endif; ?>

@stop

controller

<?php

namespace cuidar\Http\Controllers;

use Illuminate\Support\Facades\DB; use Request; use cuidar\Usuario; use cuidar\Http\Requests\UsuarioRequest;

class UsuarioController extends Controller { public function form_cadastro() { return view('cadastro'); }

public function cadastrar(UsuarioRequest $request) { $params = $request->all(); $usuario = new Usuario($params); $senha = md5(Request::input('senha')); $usuario->senha = $senha; $usuario->liberada = false; $usuario->tipo = 'padrao'; $usuario->save();

return redirect('/Cadastrar')->withInput(); }

public function lista() { $usuario = Usuario::all(); dd($usuario); }

public function login() {

}

}

essa e a request <?php

namespace cuidar\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class UsuarioRequest extends FormRequest { /* Determine if the user is authorized to make this request. @return bool */ public function authorize() { return true; }

/* Get the validation rules that apply to the request. @return array */ public function rules() { return [ 'nome' => 'required', 'endereco' => 'required', 'telefone' => 'required', 'email' => 'required', 'senha' => 'required'

]; }

public function messages() { return [ 'required' => 'O :attribute é obrigatório !', ]; }

}

Quando aperto o botão submit, ele apresenta as mensagens de erro certinho, mas limpa todos os campos assim o usuário tem que preencher tudo novamente.

João, por favor insira os códigos dentro de um bloco de código para visualizarmos melhor, por favor. Use o botão inserir código acima da caixa de texto. Abraço.

solução!

Opa, consegui resolver ja, Obrigado pessoal.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software