我有实体:
/** * @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);
当使用任何方法查找哪个应返回一个 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'
答案 0 :(得分:0)
一切看起来都不错,但可能是你遇到了大写/小写问题。您似乎已将所有表和列名称大写。
实体声明中的表名和列名是否正确?这似乎有些不一致:
表:TERCEROS
(这不应该是EMPLEADO
??)
专栏:CODIGO
(这不应该是CEDULA
??)
因此你可能会查询错误的表/列......!