symfony2如何获取映射表id?

时间:2013-10-17 06:56:49

标签: php symfony doctrine

如何从mappipng表中获取映射表ID?

我将用户和组表映射在一起 我希望在登录时获得组ID,但我没有得到它。

我有三张桌子 用户,群组,user_groupname

- >第一张表

用户

ID,名称

- >第二张表

ID,名称

- >第三个表

组名

USER_ID,GROUP_ID

第一个实体如下

/Entity/groupname.php

class groupname
{


    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="name", type="string", length=255, nullable=false)
     */
    private $name;

    /**
     * @var \Doctrine\Common\Collections\Collection
     *
     * @ORM\ManyToMany(targetEntity="role", inversedBy="groupname")
     * @ORM\JoinTable(name="groupname_role",
     *   joinColumns={
     *     @ORM\JoinColumn(name="groupname_id", referencedColumnName="id")
     *   },
     *   inverseJoinColumns={
     *     @ORM\JoinColumn(name="role_id", referencedColumnName="id")
     *   }
     * )
     */
    private $role;

    /**
     * @ORM\ManyToMany(targetEntity="\Dashboard\SecurityBundle\Entity\User", mappedBy="groupname")
     */
    private $users;

}

第二个实体如下

/Entity/User.php
<?php

namespace Dashboard\SecurityBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Security\Core\User\AdvancedUserInterface;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * Dashboard\SecurityBundle\Entity\User
 *
 * @ORM\Table(name="users")
 * @ORM\Entity(repositoryClass="Dashboard\SecurityBundle\Repository\UserRepository")
 * @ORM\HasLifecycleCallbacks()
 */
class User implements UserInterface, \Serializable, AdvancedUserInterface
{
    /**
     * @ORM\Column(type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\Column(type="string", length=25, unique=true)
     */
    protected $username;

    */

    /**
     * @ORM\ManyToMany(targetEntity="\Dashboard\AdminManageUserBundle\Entity\groupname", inversedBy="users")
     *
     */
    public $groupname;  

    /**
     * @var Dashboard\SecurityBundle\Entity\UserPhoto UserPhoto
     *
     */
    private $userPhoto;

    public function __construct()
    {
        $this->groupname    = new ArrayCollection();

    }

    /**
     * Add groupname
     *
     * @param \Dashboard\AdminManageUserBundle\Entity\groupname $groupname
     * @return User
     */
    public function addGroupname(\Dashboard\AdminManageUserBundle\Entity\groupname $groupname)
    {
        $this->groupname[] = $groupname;

        return $this;
    }

    /**
     * Remove groupname
     *
     * @param \Dashboard\AdminManageUserBundle\Entity\groupname $groupname
     */
    public function removeGroupname(\Dashboard\AdminManageUserBundle\Entity\groupname $groupname)
    {
        $this->groupname->removeElement($groupname);
    }

    /**
     * Get groupname
     *
     * @return \Doctrine\Common\Collections\ArrayCollection 
     */
    public function getGroupname()
    {

        return $this->groupname;
    }
}

我在控制器文件中有以下代码

$userEntity = $this->getDoctrine()->getRepository('DashboardSecurityBundle:User')->findOneBy(array('username' =>$usernames));

我有print_R($userEntity)个人被绞死

1 个答案:

答案 0 :(得分:0)

$ userEntiry是 UserEntity

的对象

所以,你的电脑被绞死了。

请试试这个。

   print_r($userEntity->getUsername());