使用Laravel 5.1创建更新的困难

时间:2017-03-14 20:40:43

标签: php laravel oop laravel-5.1 laravel-eloquent

我正在尝试使用Laravel 5.1创建更新,但它显示错误:

我在这个方法中有2个更新,我注意到错误已经发生在第一个

  

类型错误:参数1传递给   Illuminate \ Database \ Eloquent \ Builder :: update()必须属于该类型   数组,null给定

我的控制器

 public function update($id)
{


        $dadosForm = $this->request->except('_token');
        $dadosForm = $this->request->offsetUnset('fat_cnpj');
        $dadosForm = $this->request->offsetUnset('vatendimento');
        $dadosForm = $this->request->offsetUnset('integra');
        $dadosForm = $this->request->offsetUnset('material'); 

    $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);




        $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);

        } 


    $this->request->session()->flash('alert-success', 'Dados Alterados com Sucesso!');
    return redirect()->route('manage-content');
}

1 个答案:

答案 0 :(得分:0)

您在最后四行中将$ dadosForm变量设置为NULL:

    $dadosForm = $this->request->except('_token');
    $dadosForm = $this->request->offsetUnset('fat_cnpj');
    $dadosForm = $this->request->offsetUnset('vatendimento');
    $dadosForm = $this->request->offsetUnset('integra');
    $dadosForm = $this->request->offsetUnset('material');

(作为参考,PHP将从不指定返回的函数返回NULL值 - 因为 offsetUnset 不会。)我相信你打算这样做更像是:

    $this->request->offsetUnset('fat_cnpj');
    $this->request->offsetUnset('vatendimento');
    $this->request->offsetUnset('integra');
    $this->request->offsetUnset('material');

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