Php 条令2连接表错误?
我有两个实体,$staff和$pub,以及一个联接表$staffPub。我可以保存并使用$staff和$pub,当我手动填充$staffPub数据库表时,所有关系都可以工作。问题是,如果我尝试保持$staffPub关系,我会收到以下通知,并且该行未提交: 注意:第491行的..../Doctrine/ORM/Persisters/BasicEntityPersister.php中的未定义索引:rmcodePhp 条令2连接表错误?,php,mysql,doctrine-orm,Php,Mysql,Doctrine Orm,我有两个实体,$staff和$pub,以及一个联接表$staffPub。我可以保存并使用$staff和$pub,当我手动填充$staffPub数据库表时,所有关系都可以工作。问题是,如果我尝试保持$staffPub关系,我会收到以下通知,并且该行未提交: 注意:第491行的..../Doctrine/ORM/Persisters/BasicEntityPersister.php中的未定义索引:rmcode 注意:第491行的..../Doctrine/ORM/Persisters/basice
注意:第491行的..../Doctrine/ORM/Persisters/basicentypersister.php中未定义的索引:pubofficeid
42 在添加@JoinColumn注释之前,$staffPub实体保持不变,没有问题
class StaffPub {
/**
* @ManyToOne (targetEntity="Hs_Profile_Publication", inversedBy="staffPubRelation", cascade={"persist"})
* @JoinColumn(name="rmcode", referencedColumnName="rmcode")
*/
private $publication;
/**
* @ManyToOne (targetEntity="Hs_Profile_Staff", inversedBy="staffPubRelation", cascade={"persist"})
* @JoinColumn(name="pubofficeid", referencedColumnName="pubofficeid")
*/
public $staff;
.... etc ...
员工和酒吧都有id“id”。当我将上面的referencedColumnName设置为“id”时,它不会抛出通知。所以,问题是,我如何分别在Staff和Pub中将“pubofficeid”和“rmcode”定义为id?如果仅添加@Id,则在尝试持久化对象时会出现以下错误:
SQLSTATE[HY093]:无效参数编号:绑定变量的数量与令牌的数量不匹配
抛出到/DBAL/Statement.php第131行
因此,它归结为以下问题:如何持久化具有多个@ID的对象?StaffPub的ID是什么?你确定这不是OneTone吗?inversedBy的命名表明了这一点。StaffPub的ID是什么?你确定这不是OneTone吗?inversedBy的命名表明了这一点。/***@Id*@Column(type=“integer”,length=11,name=“Id”)*@GeneratedValue*/protected$Id=null;上面是StaffPub的id-很抱歉格式化。工作人员可以有许多出版物,出版物可以有许多工作人员(作者)。为什么inversedBy的命名表示oneToOne关系?/***@Id*@列(type=“integer”,length=11,name=“Id”)*@GeneratedValue*/protected$Id=null;上面是StaffPub的id-很抱歉格式化。工作人员可以有许多出版物,出版物可以有许多工作人员(作者)。为什么inversedBy的命名暗示了一种一刀切的关系?