首页 文章

doctrine2 oracle查询方法查找,不起作用

提问于
浏览
1

我有实体:

/**
 * @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 回答

  • 0

    一切看起来都不错,但可能是你遇到了大/小写的问题 . 您似乎已将所有表和列名称大写 .

    实体声明中的表名和列名是否正确?看起来有点不一致:

    表: TERCEROS (这应该不是 EMPLEADO ??)
    栏: CODIGO (这应该不是 CEDULA ??)

    因此你可能会查询错误的表/列......!?

相关问题