robsonvleite / datalayer

The data layer is a persistent abstraction component of your database that PDO (O data layer é um componente para abstração de persistência no seu banco de dados que usa PDO com prepared statements)
https://www.upinside.com.br
MIT License
144 stars 53 forks source link

feat: Add new findBySomeColumn() function #57

Closed wilderamorim closed 1 year ago

wilderamorim commented 2 years ago

O método findById() possui algumas limitações, como não poder utilizar fetch(true) e estar limitado apenas a coluna id. Agora podemos utilizar qualquer coluna como findByLastName() que buscará a coluna last_name. Também é possível utilizar fetch() e fetch(true).

Importante: Essa função exige o fetch() obrigatoriamente, diferente do findById() que era omitido.

robsonvleite commented 1 year ago

O findById emite o fetch e não permite o true pois por lógica ele só tem como trazer 1 resultado, já que o ID é único na tabela, logo ele monta o objeto e entrega o resultado. Já o find pode trazer 1 ou mais resultados, por isso ele tem o fetch e possibilita o param true.

O findBy implementado neste PR não fez sentido, uma vez que ele apenas muda o comportamento do FindById tirando a retrocompatibilidade com todos os projetos que usam o componente, ao mesmo tempo que apenas reescreve o find().