Eloquent Update
[Concluído]
Carlos, boa tarde.
Tem como usar o update desta forma? Eu testo se existe e se existir só faço update no banco.
Olá, Marcos!
Tudo bem?
Existe o método "updateOrCreate", mas ele só dá certo 100% se os dados foram iguais, caso contrário sempre vai criar um novo registro.
https://laravel.com/docs/6.x/eloquent#other-creation-methods
Oi Carlos.
Só funciona vase todos campos que desejo atualizar for igual ao que já existe? Não entendi já que desejo fazer um update pois entendo que algum dado foi alterado.
Caso não seja fazer desta forma acredito que localizar e fazer um If para update e create certo?
Obrigado.
Isso, se for igual ele atualiza, se for diferente ele insere um novo registro.
Para se sentir mais confortável acho mais viável inserir/editar manualmente:
$preventiva = Preventiva::where('nome_campo', $valor)->first();
if (!$preventiva) {
Preventiva::create([
...
]);
} else {
$preventiva->udate([
...
]);
}
Carlos, estou fazendo assim e está com erro:
Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR)"
Se coloco :: como
- else {
- Preventiva::update([
- 'preventiva_id' => $preventiva->preventiva_id,
- 'status' => $preventiva->status,
"Non-static method Illuminate\Database\Eloquent\Model::update() should not be called statically"
Como usso o update desta forma?
Caralos, eu fiz assim e funcionou! É assim mesmo? Eu tive que fazer o where novamente. Tem como fazer o update direto já que testei usando o find e já sei que existe?
Isso, quando vai fazer o update precisa fazer o where para especificar qual exatamente o registro que está atualizando.
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!