ОШИБКА: свойство [encomendas] не существует в экземпляре построителя Eloquent.

Код:

 $update = encomendas::join('encomendas', 'encomendas_detalhes.id_encomenda', '=', 'encomendas.id')
        ->join('users', 'encomendas_detalhes.id_user', '=', 'users.id')
        ->join('encomendas_pagamentos', 'encomendas.id', '=', 'encomendas_pagamentos.id_encomenda')
        ->where('encomendas_pagamentos.entidade', $ENTIDADE)
        ->where('encomendas_pagamentos.referencia', $REFERENCIA)
        ->where('encomendas_pagamentos.valor', $VALOR);

    $update->estado = 2;

    $update->save();

Я благодарю всех, кто может помочь

0
Mica Pereira 19 Июл 2020 в 02:59

1 ответ

Лучший ответ

Потому что это:

$update = encomendas::join('encomendas', 'encomendas_detalhes.id_encomenda', '=', 'encomendas.id')
        ->join('users', 'encomendas_detalhes.id_user', '=', 'users.id')
        ->join('encomendas_pagamentos', 'encomendas.id', '=', 'encomendas_pagamentos.id_encomenda')
        ->where('encomendas_pagamentos.entidade', $ENTIDADE)
        ->where('encomendas_pagamentos.referencia', $REFERENCIA)
        ->where('encomendas_pagamentos.valor', $VALOR);

Возвращает экземпляр Builder, а не Model/Collection. Если вам нужны результаты, вы должны ->get() их, или, если вам нужно только обновить их, вы можете просто сделать:

$update = encomendas::join('encomendas', 'encomendas_detalhes.id_encomenda', '=', 'encomendas.id')
        ->join('users', 'encomendas_detalhes.id_user', '=', 'users.id')
        ->join('encomendas_pagamentos', 'encomendas.id', '=', 'encomendas_pagamentos.id_encomenda')
        ->where('encomendas_pagamentos.entidade', $ENTIDADE)
        ->where('encomendas_pagamentos.referencia', $REFERENCIA)
        ->where('encomendas_pagamentos.valor', $VALOR)
        ->update(['estado' => 2]);
0
Berto99 19 Июл 2020 в 00:04