What is the correct way to pass data from the view to the model?

1

Using Laravel, what is the best way to pass data from view to model? For example, forms data and etc ...

Some time ago I used Codeigniter and sent the data via ajax. In the case of Laravel, would it be the same, or do you have any better and better shape?

    
asked by anonymous 17.11.2015 / 19:13

1 answer

5

Generally, you can do the common flow of a framework

  • The view form is submitted, the data is processed by the controller, and then passed to create a model.

A basic example of this can be seen as follows:

View

{{  Form::open(['id' => 'meu-formulario']) }}
{{  Form::text('nome_produto') }}
{{  Form::submit('Enviar') }}
{{  Form::close() }}

Controller

public function postCadastrarProduto() 
{
   $input = Input::only('nome_produto');

   Produto::create($input);
}

Model

class Produto extends Eloquent
{
     protected $table = 'produtos';
     protected $fillable = ['nome_produto'];

}

If you want to do ajax requests, you can do so:

View

The same as before

Javascript

$.ajax({
    url: '/produtos/ajax-cadastrar-produto',
    type: 'POST',
    data: {nome_produto: $('#nome-produto').val()},
    success: function (response) {
        if (response.error) {
           return alert(response.error);
        }

        return alert('deu tudo certo');
    }       
});

controller

// Se der erro, retornará um json com o índice error com alguma mensagem

public function postAjaxCadastrarProduto() 
{
   $input = Input::only('nome_produto');

   Produto::create($input);

   return Response::json(['error' => false]);
}
    
17.11.2015 / 19:26