Erro durante renderização de componentes
[Finalizado Pelo Aluno]
Boa tarde Carlos, estou tendo dificuldade para resolver um problema.
se eu montar o meu data assim, funciona normalmente
data () {
return {
campo: '',
}
},
Porem se eu tiver muitos campos no formulario e quiser usar o formData para agrupar meus dados da erro
data () {
return {
formData: {
nome: '',
}
}
},
erro: Property or method "nome" is not defined on the instance but referenced during render.
Olá, Davisson!
Tudo bem?
Me mostra o código completo desse component, porque assim posso ter uma visão geral melhor e te ajudar a resolver o problema.
No aguardo.
O codigo se encontra no link:
https://drive.google.com/open?id=1NL0td8AbqThiAxTtJ-UdSntQ76_rNIzK
Professor, consegui ancontrar a solução. No html nos respectivos campos é necessário incluir o formdata na diretiva ( formData.nomecampo ) , e no js apenas declarar o objeto formData{}, foi uma falta de atenção minha, mas gostaria de um esclarecimento.
Com essa estrutura o backend recebe um array com outro array chamado formDarta contendo as informações, com isso eu preciso armazenar o request em uma variavel, e depois acessar o array interno $variavel = $this->request->all() e depois $variavel['formData'].
E nesse formato se eu quiser isolar um campo especifico eu precisaria fazer $formData['formData']['nome'].
Esta correto?
Analisei o seu component.
Como as suas propriedades estão escapsuladas no formData, precisa chegar pelas através da hierarquia definida.
<input type="text" name="name" value="{{ formData.name }}">
Quando você for fazer uma request para o backend (seja ele qual form) você envia a propriedade formData.
E enviando essa propriedade formData via ajax, lá na API recebe um array ou objeto com os valores dela: ['name', 'campo2', 'etc']
Ao encapsular os campos no formData, o meu backend recebe:
array:1 [ "formData" => array:3 [ "campo1" => "Teste" "campo2" => "teste" "campo3" => "teste" ] ]
E quando se usa o FormRequest para validar os dados de entrada ele não valida, por que não consegue capturar os campos, como faço para trabalhar com FormRequest nesse cenário?
Me mostra como ficou a sua conta ajax, no Vue.js.
É porque você está passando o formData como um objeto, precisa fazer algo assim:
const params = this.formData
axios.post('/url', { params })
Segui a sua dica e deu certo, Obrigado!
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!