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

Comportamento inesperado #65

Closed webesistemas closed 1 year ago

webesistemas commented 2 years ago

estou usando a seguinte consulta:

use Models\Texto; $texto = (new Texto())->findById(4);

o data nao esta vindo com todas as colunas da tabela:

object(Models\Texto)#28 (13) { ["entity":"CoffeeCode\DataLayer\DataLayer":private]=> string(5) "texto" ["primary":"CoffeeCode\DataLayer\DataLayer":private]=> string(2) "id" ["required":"CoffeeCode\DataLayer\DataLayer":private]=> array(6) { [0]=> string(4) "nome" [1]=> string(5) "texto" [2]=> string(3) "src" [3]=> string(4) "tipo" [4]=> string(4) "data" [5]=> string(3) "obs" } ["timestamps":"CoffeeCode\DataLayer\DataLayer":private]=> bool(false) ["database":"CoffeeCode\DataLayer\DataLayer":private]=> NULL ["statement":protected]=> NULL ["params":protected]=> NULL ["group":protected]=> NULL ["order":protected]=> NULL ["limit":protected]=> NULL ["offset":protected]=> NULL ["fail":protected]=> NULL ["data":protected]=> object(stdClass)#29 (1) { ["obs"]=> NULL } }

se eu usar $result = $texto->findById(4,'texto'); // especificar a coluna vem a coluna texto.. no anterior vem só a coluna obs

webesistemas commented 2 years ago

Acho que descobri o problema!!! Se a tabela tiver um campo chamado 'data' ao fazer o findbyid da erro no construtor ... return $stmt->fetchObject(static::class);

DataLayer linha 233