Doctrine ManyToOne从ONE获取ID

时间:2018-03-26 10:41:07

标签: symfony doctrine-orm

我有父表和子表。多对一。 我的问题是,在一种情况下,我直接从具有子ID的子表中选择。我也需要父ID。父ID保存在子项中,因为它是对父项的引用。就我而言:categories_back_id

我在我的repository中使用了一个查询。但是我无法在doctrine中获得这个categories_back_id列。当我在教义中选择此表中的所有列时 - 它不在那里。如果我在phpMyAdmin中选择全部,那就在那里。在phpMyAdmin中,我也可以选择categories_back_id,但不能在symfony doctrine中选择。 所以我猜它的学说体系?

我如何获得此ID?

父:

Get<IRequestCultureFeature>()

子:

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


/**
 * @var int
 *
 * @ORM\Column(name="catorder", type="integer", nullable=true)
 */
private $catorder;


/**
 * @var string
 *
 * @ORM\Column(name="description", type="text")
 */
private $description;


/**
 * One Content has Many Files.
 * @ORM\OneToMany(targetEntity="AppBundle\Entity\newspaper_subcategories", mappedBy="categoriesBack", cascade={"persist", "remove"}, orphanRemoval=true)
 * @ORM\JoinColumn(nullable=true)
 * @ORM\OrderBy({"subcatorder" = "ASC"})
 */
private $subcategories;


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

1 个答案:

答案 0 :(得分:0)

如果你打电话给你的父类:

getSubcategories()

你应该得到一个包含你孩子的PersisentCollection 默认情况下,ManyToOne具有延迟提取功能。但是,如果你懒散了你的子系统,你将能够获取它们。

foreach ($object->getSubcategories() as $subcategories) {
  $id = $subcategories->getId()
 /* do stuff */
}

这是你的问题吗?我没有得到你的问题,所以也许我没有得到它,如果是这样你可以重新制定一点? :)