Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 获得外国凯而非对象主义的价值+;西蒙尼?_Symfony_Doctrine Orm - Fatal编程技术网

Symfony 获得外国凯而非对象主义的价值+;西蒙尼?

Symfony 获得外国凯而非对象主义的价值+;西蒙尼?,symfony,doctrine-orm,Symfony,Doctrine Orm,我有两张桌子。一个有两个主键,即复合键。另一个表中的外键也是一样的。现在原则总是为外键返回对象而不是值。在单一主键的情况下,我设法获得了它,但在复合的情况下,我不知道如何做到这一点 单主键情况下的代码如下: $patient = $this->entity->getPatient(); $patient_vars = $patient->toString(); // Inernal function to get private variables $em = $this-&g

我有两张桌子。一个有两个主键,即复合键。另一个表中的外键也是一样的。现在原则总是为外键返回对象而不是值。在单一主键的情况下,我设法获得了它,但在复合的情况下,我不知道如何做到这一点

单主键情况下的代码如下:

$patient = $this->entity->getPatient();
$patient_vars = $patient->toString(); // Inernal function to get private variables
$em = $this->doctrine->getManager();
$metaLabTest = $em->getClassMetadata(get_class($patient));
$identifierLabTest = $metaLabTest->getIdentifier($patient);
$metaPatient = $em->getClassMetadata(get_class($patient_vars[$identifierLabTest[0]]));
$identifierPatient = $metaPatient->getIdentifier();
$getFn = "get".$identifierPatient[0];
return $patient_vars[$identifierLabTest[0]]->$getFn();
以上任何建议都将不胜感激,因为我对信条和symfony相当陌生


提前感谢。

你应该研究水合作用,以控制学说产生的影响

您想使用原始密钥有什么特别的原因吗?我只想返回外键的简单值,但返回对象。所以我尝试了上面提到的方法,它是有效的,但在复合密钥的情况下不起作用。请建议你是否有更好的方法来实现这一点。这是你正在寻找的吗?我还是不明白你的问题。原则的全部要点是为您提供对象,而不是原始数据库访问。是的,我的问题与您提到的问题相关,但如果实体具有复合密钥,则不起作用,这是我的问题。请让我知道它是否清晰,或者我将尝试更详细地阐述它。没有你的实体和数据库的任何结构,我不知道你在这里试图做什么。