【发布时间】:2011-08-03 13:03:46
【问题描述】:
我有两个实体,一个是 Role ,另一个是 User ,我想构建表单和报告来添加和显示每个角色及其用户,并创建一个具有一个 Role 的用户,因此它的 User:Role (One-To-很多),我设法通过 Doctrine 2 向用户添加角色,但我无法向以下每个角色显示用户是我的代码
<?php
/**
* Description of Role
* @Entity
* @Table=(name"Roles")
* @author alaaqashou
*/
class Role {
//put your code here
/**
*
* @var integer $id
* @Column(name="id", type="integer",nullable=false)
* @Id
* @GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @Column(length=100,nullable=false,unique=true)
* @var type
*/
private $name;
/**
* @OneToMany(targetEntity="User" ,mappedBy="Role")
* @var type
*/
private $users;
public function __construct() {
$this->users=new \Doctrine\Common\Collections\ArrayCollection();
}
public function getUsers() {
return $this->users;
}
public function setUsers($user) {
$this->users->add($user);
}
}
/**
* Description of User
*@Entity
* @Tabel(name="Users")
* @author alaaqashou
*/
class User {
//put your code here
/**
*
* @var integer $id
* @Column(name="id", type="integer",nullable=false)
* @Id
* @GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
*
* @Column(length=255,nullable=false,unique=true)
*
*
* @var type
*
*/
private $role;
function __construct() {
$this->created=new \DateTime(date("Y-m-d H:i:s"));
}
public function getRole() {
return $this->role;
}
public function setRole($role) {
$this->role = $role;
}
}
我收到通知:未定义索引:尝试执行以下操作时出现角色错误
我的服务
public function listAllRole()
{
return $this->em->getRepository('sihha\Entity\Role')->findAll();
}
$roles=$this->roleService->listAllRole();
$users=$roles[0]->getUsers();
// I even tried $users=$roles[0]->getUsers()->toArray();
$user=$users[0];
请帮忙!!!
【问题讨论】:
-
我无法访问 DoctrineArrayCollection 的元素,但奇怪的是你可以这样做 $role->getUsers()->add($user);
标签: php zend-framework orm doctrine-orm