Closed KaueMoura closed 2 years ago
@KaueMoura também percebi esse comportamento hoje pelo mesmo motivo de alteração de campos em uma tabela. Na ela valida o ID no caso do UPDATE ele sempre vai existir, pois passamos ele para realizar o próprio UPDATE, então mesmo com erro o retorno vai ser sempre true
, pois o ID vai existir independente se foi alterado ou não. Vou tentar fazer um pull request disso, não sei se é a melhor solução mas server para ter uma ideia.
/** Update */
if (!empty($this->data->$primary)) {
$id = $this->data->$primary;
if(!$this->update($this->safe(), "{$this->primary} = :id", "id={$id}")) {
return false;
}
}
@KaueMoura também percebi esse comportamento hoje pelo mesmo motivo de alteração de campos em uma tabela. Na ela valida o ID no caso do UPDATE ele sempre vai existir, pois passamos ele para realizar o próprio UPDATE, então mesmo com erro o retorno vai ser sempre
true
, pois o ID vai existir independente se foi alterado ou não. Vou tentar fazer um pull request disso, não sei se é a melhor solução mas server para ter uma ideia./** Update */ if (!empty($this->data->$primary)) { $id = $this->data->$primary; if(!$this->update($this->safe(), "{$this->primary} = :id", "id={$id}")) { return false; } }
Pull aceito. Grato :)
Eu estava fazendo um teste com uma coluna nova em minha tabela de cliente no banco de dados. Mas depois deletei esta coluna do banco e executei o método save/update. Claro que daria erro pois agora ao fazer update estou tentando atualizar um campo que não existe mais. Mas o problema aqui é o comportamento do método save/update que não retornou corretamente o erro.
Ao executar o update o método simplesmente deveria retornar false, mas não ocorreu. Então analisando o código o problema é que ao fazer o update não é verificado se ele deu erro para retornar false, segue o trecho do código.
Efetuei um ajuste mas queria confirmar se seria o correto, segue abaixo.