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

Dúvida request::all e params.

Estou com um problema quando executo o método adiciona, pois quando uso o Request::all() ele não da problema nenhum, até pega os parametros, porem não salva no meu banco, todos os parametros vão em branco quando salvos.

5 respostas

Por favor, compartilhe o trecho de código do método adiciona. Fica mais fácil verificar se falta algo no código.

A base para que o código funcione é a seguinte:

$params = Request::all(); // Recupera os parâmetros
Produto::create($params); // Salva no banco
public function adiciona() {
        $params = Request::all();
        Negociacao::create($params);

        return redirect()->action('NegociacaoController@lista')->withInput(Request::only('nome'));
    }

O meu código está como acima, fiz algumas modificações nas classes, adaptei para um problema meu, que seria de negociações. Até ai tudo bem, porém quando salvo no banco todos os campos vão em branco, mas a mensagem exibida na minha view listagem mostra corretamente o nome que foi pego como parametro do campo no formulario.

No modelo NEGOCIACAO, vc indicou quais campos devem ser preenchidos? protected $fillable = [ 'name', 'email', 'password', ];

Os nomes dos campos do formulário estão iguais aos nomes dos campos do modelo?

<?php namespace estoque;

use Illuminate\Database\Eloquent\Model;

class Negociacao extends Model {

    public $timestamps = false;
    protected $fillable = array('cod_produto', 'tipo_mercadoria', 'nome_mercadoria', 
        'qtde_mercadoria', 'preco_mercadoria', 'tipo_negocio');

}

esse é meu código do Modelo, os campos indicados ali estão iguais no banco, tenho que identificar como os names do form?

solução!

Sim.

Você deve nomear os campos do FORM com a mesma nomeclatura, com a atributno "name".