我有实体:
/**
* @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
找不到,即使我在数据库中插入了 apellido1 = 'fulano'
apellido1 = 'fulano'
和 cedula = '1234567'
PS:我正在与Symfony之外的学说合作 .
1 回答
一切看起来都不错,但可能是你遇到了大/小写的问题 . 您似乎已将所有表和列名称大写 .
实体声明中的表名和列名是否正确?看起来有点不一致:
表:
TERCEROS
(这应该不是EMPLEADO
??)栏:
CODIGO
(这应该不是CEDULA
??)因此你可能会查询错误的表/列......!?