Difficulties in creating update with Laravel 5.1?

1

I'm trying to create a update with Laravel 5.1 but it's bringing the following error:

  

Type error: Argument 1 passed to Illuminate\Database\Eloquent\Builder::update() must be of the type array, object given

Follow my Controller

public function update($id)
{

                $proposta = $this->proposta;

        $proposta->cliente_id = $this->request->get('cliente_id');
        $proposta->contato = $this->request->get('contato');
        $proposta->email = $this->request->get('email');
        $proposta->telefone = $this->request->get('telefone');
        $proposta->fatcnpj = $this->request->get('fatcnpj');
        $proposta->atendimento = $this->request->get('atendimento');
        $proposta->dt_solicitacao = $this->request->get('dt_solicitacao');
        $proposta->dt_vigencia = $this->request->get('dt_vigencia');
        $proposta->vendedor = $this->request->get('vendedor');
        $proposta->coleta = $this->request->get('coleta');
        $proposta->dt_integracao = $this->request->get('dt_integracao');
        $proposta->hr_integracao = $this->request->get('hr_integracao');
        $proposta->frete_material = $this->request->get('frete_material');
        $proposta->status_id = $this->request->get('status_id');  

        $this->proposta->where('id', $id)->update($dadosForm);

        $dadosForm = $this->request->except('_token');
        $proposta_id = $id;

        $count = $this->ensaios->max('id');


        for($i=1;$i<=$count;$i++){ //Save Ensaios

        $proposta_ensaios = new PropostaEnsaios();

        $proposta_ensaios->id_proposta = $proposta_id;
        $proposta_ensaios->id_produto = $i;
        $proposta_ensaios->quantidade = $dadosForm['quantidade_'.$i];
        $proposta_ensaios->valor= $dadosForm['valor_'.$i];
        $proposta_ensaios->total = $dadosForm['total_'.$i];

        $proposta_ensaios->where('id', $id)->update($dadosForm);
}
    
asked by anonymous 14.02.2017 / 13:58

1 answer

2

The update parameter needs to be a chave=>valor array so it is giving the error.

The second update will probably work because $this->request->except('_token'); will return an array chave=>valor with execao of the _token field.

But back to the doubt I think the right would be something more like this

$dadosPropostaForm = $this->request->except('_token');
$this->proposta->where('id', $id)->update($dadosPropostaForm);

If you do not save the essays you also need an array chave=>valor

$proposta_ensaios = new PropostaEnsaios();

$proposta_ensaios_dados['id_proposta'] = $proposta_id;
$proposta_ensaios_dados['id_produto'] = $i;
$proposta_ensaios_dados['quantidade'] = $dadosForm['quantidade_'.$i];
$proposta_ensaios_dados['valor']= $dadosForm['valor_'.$i];
$proposta_ensaios_dados['total'] = $dadosForm['total_'.$i];

$proposta_ensaios->where('id', $id)->update($proposta_ensaios_dados);
    
14.02.2017 / 14:22