Php Symfony原则连接其他表

Php Symfony原则连接其他表,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我在通过ORM映射连接表时遇到问题 这是我的跟踪实体 namespace AppBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity * @ORM\Table(name="follows") */ class Follow { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strateg

我在通过ORM映射连接表时遇到问题

这是我的跟踪实体

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="follows")
 */
class Follow
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\Column(name="user_id", type="integer")
     * @ORM\ManyToOne(targetEntity="User", inversedBy="users")
     * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
     */
    protected $userId;

    /**
     * @ORM\Column(name="follower_id", type="integer")
     */
    protected $followerId;

    /**
     * @ORM\Column(name="is_active", type="boolean")
     */
    protected $isActive = true;

    /**
     * Get id
     *
     * @return integer
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Get user id
     *
     * @return integer
     */
    public function getUserId()
    {
        return $this->userId;
    }

    /**
     * Get follower id
     *
     * @return integer
     */
    public function getFollowerId()
    {
        return $this->followerId;
    }

    /**
     * Get is active
     *
     * @return integer
     */
    public function isActive()
    {
        return $this->isActive;
    }

    /**
     * Set user id
     */
    public function setUserId($userId)
    {
    $this->userId = $userId;
    }

    /**
     * Set follower id
     */
    public function setFollowerId($followerId)
    {
    $this->followerId = $followerId;
    }

    /**
     * Set active
     */
    public function setActive($active)
    {
        $this->isActive = $active;
    }
}
我希望$userId包含User,而不仅仅是userId。我曾尝试加入条令映射,但它不起作用

我该怎么做才对呢


谢谢大家!

应该删除覆盖映射的@ORM\Columnname=user\u id,type=integer行,只留下:

/**
 * @ORM\ManyToOne(targetEntity="User", inversedBy="users")
 * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
 */
protected $user;
另外,您应该将属性命名为$user,而不是$userId,因为它包含用户对象,而不是其ID

在这种情况下,@ORM\JoinColumnname=user\u id,referencedColumnName=id行是不必要的,因为条令会将此字段命名为user\u id本身


请阅读更多有关条令映射的信息。

好的,谢谢。但是,如果我有两个属性需要包含user。看,我有Follow->userId和Follow->followerId。两者都是用户id,第二个是用户id,紧跟第一个。orm映射应该是什么样子?这不是问题,只需再添加一个关联即可。它将是相同的,只是它将有不同的名称。