Symfony2 如何获取映射表 ID


symfony2 how to get mapping table id?

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

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

我有三张桌子用户、组user_groupname

->第一张桌子

用户

编号,姓名

->第二桌

编号,姓名

->第三桌

组名

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)电脑被吊死了

$userEntiry 是 UserEntity 的对象

所以,你的电脑被挂起了。

请尝试此。

   print_r($userEntity->getUsername());