こんにちは、OneToOne の関係で少し問題が発生しています。
$userToView = $this->view->entityManager->getRepository("Ajfit\Entity\User")
->findOneByName($userName);
これは意図したとおりに入力されますが、プロキシ エンティティである engineFk と呼ばれるリレーショナル フィールドの識別子フィールドは [] に設定されていますが、値は正しく設定されています。以下を参照してください。
私のユーザーエンティティはこれです:-
class User extends PersistentObject
{
/**
* @var integer $pk
*
* @ORM\Column(name="pk", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
protected $pk;
/**
* @var integer $engineerFk
* @ORM\OneToOne(targetEntity="Ajfit\Entity\Engineer")
* @ORM\JoinColumn(name="pk", referencedColumnName="user_fk")
*/
protected $engineerFk;
}
私のエンジニアエンティティは次のようにセットアップされます:-
class Engineer extends PersistentObject
{
/**
* @var integer $pk
*
* @ORM\Column(name="pk", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
}
protected $pk;
そして、データベース内の私のSQLはこれです:-
/*user table*/
CREATE TABLE `user` (
`pk` int(10) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`pk`)
) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8 COLLATE=utf8_bin
/*engineer table */
CREATE TABLE `engineer` (
`pk` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_fk` int(10) unsigned NOT NULL,
PRIMARY KEY (`pk`),
KEY `engineer_user_fk` (`user_fk`),
CONSTRAINT `engineer_user_fk` FOREIGN KEY (`user_fk`) REFERENCES `user` (`pk`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
この問題についての助けがあれば、大いに感謝します。
ありがとう
アンドリュー