У меня есть объект:
/** * @ORM\Entity * @ORM\Table(name="TERCEROS") */ class Empleado { /** * @ORM\Id * @ORM\Column(type="string", name="CODIGO", length=15) * @ORM\GeneratedValue(strategy="NONE") * @var string */ protected $cedula; /** * @ORM\Column(type="string", name="APELLIDO1") * @var string */ protected $apellido1; }
и поэтому получите менеджера:
$path = array(__DIR__.'/../../Entities');
$devMode = getenv('DEV_MODE');
$config = Setup::createAnnotationMetadataConfiguration($path, $devMode, null, null, false);
$config->setProxyDir($path[0] . '/Proxy');
$config->setProxyNamespace('Proxy');
$empleadosManager = \Doctrine\ORM\EntityManager::create(arrayparams, $config);
при использовании любого метода find, который должен возвращать один единственный Empleado, этот возврат null
$empleadosRepository = $empleadosManager->getRepository(Empleado::class);
$empleados = $empleadosRespository->findAll(); //this returns the data correctly
$empleado = $empleados = $empleadosRespository->find('12345678'); //=null
$empleado = $empleados = $empleadosRespository->findOneBy(['apellido1' =>'fulano']); //=null
Никто не нашел, хотя у меня есть Empleado
с apellido1 = 'fulano'
и cedula = '1234567'
, вставленной в базу данных
PS: Я работаю с учением вне Symfony.
Все выглядит хорошо для меня, но могло случиться, что вы столкнулись с проблемой верхнего и нижнего регистра. Кажется, что все имена таблиц и столбцов заглавные.
Правильны ли имена таблиц и имена столбцов в декларации сущности? Кажется немного непоследовательным:
table: TERCEROS
(Если это не EMPLEADO
??)
column: CODIGO
(Если это не CEDULA
?)
Из-за этого вы можете запросить неправильную таблицу/столбец...!?
findAll()
возвращает данные правильно