Php Doctrine2在联接表或映射表中插入数据
我有一个场景,员工和组织表映射到名为Php Doctrine2在联接表或映射表中插入数据,php,doctrine-orm,zend-framework2,Php,Doctrine Orm,Zend Framework2,我有一个场景,员工和组织表映射到名为org\u employees的单独表中 我在分别为employees表和organization表添加行方面没有问题,但我的问题是如何为org\u employees表添加记录。我是否需要为org\u员工创建一个单独的实体table means,如果是,ORM关系是如何发生的。有谁能给我指点一下吗 员工实体: <?php namespace Employee\Entity; use Doctrine\Common\Collections\ArrayCo
org\u employees
的单独表中
我在分别为employees表和organization表添加行方面没有问题,但我的问题是如何为org\u employees
表添加记录。我是否需要为org\u员工创建一个单独的实体
table means,如果是,ORM关系是如何发生的。有谁能给我指点一下吗
员工
实体:
<?php
namespace Employee\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Library\Entity\BaseEntity;
/**
* @ORM\Entity
* @ORM\Table(name="employees")
*/
class Employee extends BaseEntity{
/**
* @ORM\Column(name="employee_code", type="string")
* @var string
*/
protected $empCode;
public function getEmpCode() {
return $this->empCode;
}
public function setEmpCode($empCode) {
$this->empCode = $empCode;
return $this;
}
public function __toString() {
return __CLASS__ . ": [id: {$this->id}, name: {$this->name}]";
}
}
<?php
namespace Organization\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Library\Entity\BaseEntity;
/**
* @ORM\Entity
* @ORM\Table(name="organizations")
*/
class Organization extends BaseEntity{
/**
* @ORM\Column(name="name", type="string")
* @var string
*/
protected $name;
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
}
public function __toString() {
return __CLASS__ . ": [id: {$this->id}, name: {$this->name}]";
}
}
你可以做两件事
员工
和组织
之间添加一个多人
关系
EmployeeOrganization(Link)
。这意味着:
员工
-多通
-员工组织(链接)
-一通
-组织
manytomy
关于如何定义这些关系,我想参考文档或其他堆栈溢出问题,这里有足够的信息。您可能正在寻找多对多关系:几乎是的,但是我如何保存数据呢?请看这里:或者这里:这取决于OrgEmployees是否有任何属性。如果没有属性,那么使用多个关系将为您完成所有工作。持久性是自动处理的。如果您需要其他属性,那么您将需要一个OrgEmployeer实体,该实体与Org和Employee具有一对一的关系,并且持久性的处理方式与任何其他实体一样。第二个解决方案对我来说是必要的解决方案,因为我的链接表中有额外列的场景。您能为我介绍第一个解决方案吗?一些链接怎么做?我必须添加。删除映射中的多行tables@Volatil3检查条令中的文件或多个关系。如果您不使用这些文档,您可以留下另一条评论。