Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.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
Php 条令2连接表错误?_Php_Mysql_Doctrine Orm - Fatal编程技术网

Php 条令2连接表错误?

Php 条令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

我有两个实体,$staff和$pub,以及一个联接表$staffPub。我可以保存并使用$staff和$pub,当我手动填充$staffPub数据库表时,所有关系都可以工作。问题是,如果我尝试保持$staffPub关系,我会收到以下通知,并且该行未提交:

注意:第491行的..../Doctrine/ORM/Persisters/BasicEntityPersister.php中的未定义索引:rmcode

注意:第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的命名暗示了一种一刀切的关系?