robsonvleite/datalayer

Update sempre retornando verdadeiro

iaematt opened this issue · 3 comments

Utilizando o DataLayer em uma mini aplicação notei que quando eu passava um dado inválido para um campo no banco de dados tentando atualizar o registro, ele sempre retornava verdadeiro, quando era para retornar falso pois o campo não aceita esse tipo de dado dentro do banco de dados. (ex: enviar uma string em um campo de inteiros)

Fui verificar e dentro do DataLayer quando realiza a função $this->update ele retorna um int|null, e não é verificado dentro da função $this->save esse tipo, é verificado apenas se retornou false, que no caso do update retorna null quando não foi possível salvar.

image

image

Estou com a mesma situação, e no meu caso nem o update está ocorrendo, e nem a exceção;

$user = (new Source\Models\Users())->findById($form['id']);
$user->status = 2;
$userId = $user->save();

Testei o seguinte código e resolveu o problema, retornando falso.

if ($save || $save === false) {
     return false;
}

Na linha 308 do arquivo DataLayer.php.

Obrigado