【发布时间】:2015-04-05 15:46:00
【问题描述】:
我在当前的实体映射方面遇到了很多问题,所以我想就它的问题提出意见。
假设有以下表格示例与 Doctrine,但请记住,Group 可以有许多 Users,并且 User 可以成为许多群组
的一部分用户
身份证
名字
组
身份证
标题
用户组
身份证
user_id
group_id
这是我目前的做法:
/**
* User
*
* @ORM\Table(name="user")
* @ORM\Entity(repositoryClass="SomeBundle\Entity\Repository\UserRepository")
*/
class User
{
/**
* @var integer
* @ORM\Id
* @ORM\Column(name="user_id", type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $user_id;
// some other fields and functions here
}
组
/**
* Group
*
* @ORM\Table(name="group", indexes={@ORM\Index(name="group_parent", columns={"parent_id"})})
* @ORM\Entity(repositoryClass="SomeBundle\Entity\Repository\GroupRepository")
*/
class Group
{
/**
* @var integer
*
* @ORM\Column(name="category_id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $categoryId;
// some other functions and variables here
}
...和用户组
/**
* User_Groups
*
* @ORM\Table(name="user_groups",
* indexes={
* @ORM\Index(name="user_group_user", columns={"user_id"}),
* @ORM\Index(name="user_group_group", columns={"group_id"})
* }
* )
* @ORM\Entity(repositoryClass="SomeBundle\Entity\Repository\UserGroupRepository")
*/
class UserGroup
{
/**
* @var integer
*
* @ORM\Id
* @ORM\Column(name="user_group_id", type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $userGroupId;
/**
* @var \SomeBundle\Entity\User
* @ORM\Column(name="user_id")
*
* @ORM\ManyToMany(targetEntity="SomeBundle\Entity\User", inversedBy="userGroups")
* @ORM\JoinTable(name="users",
* joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="userId")})
*/
private $user;
/**
* @var SomeBundle\Entity\Category
*
* @ORM\ManyToOne(targetEntity="SomeBundle\Entity\Group", inversedBy="groups")
* @ORM\JoinColumn(name="group_id", referencedColumnName="group_id")
*
*/
private $group;
/// etc
}
任何帮助将不胜感激!
【问题讨论】:
-
还有什么问题?
-
首先,我想对我的注释实现发表意见,因为我对此不是很有经验。其次,现在的错误是:“
ContextErrorException: Catchable Fatal Error: Object of class SomeBundle\Entity\User could not be converted to string in ***/dev/vendor/doctrine/dbal/lib/Doctrine/DBAL/Statement.php line 120”
标签: php symfony doctrine-orm