簡體   English   中英

Symfony 2.8教義獲取/顯示數據故障

[英]Symfony 2.8 Doctrine fetch/display data trouble

在很大程度上遵循了Symfony 2.8的書籍示例之后,作為一個完整的初學者,我很難從具有ManyToOne關系的數據庫中獲取數據。 我有一個數據庫表類別 ,一個部署 展開時具有指categories.id一個CATEGORY_ID。 因此,一個類別可以有許多部署。 數據庫中有數據,當我在pma中自定義查詢時會得到結果。

我的問題:執行完我的控制器代碼后,我得到一個Collection(見圖),但是看起來好像沒有布滿deploy元素。 我究竟做錯了什么? 如何顯示具有特定category_id的deploy元素

在我的控制器中,我這樣做:

$category = $this->getDoctrine()->getRepository('AppBundle:Category')->find(1);      
$deploys = $category->getDeploys();      
dump($deploys);
die();

這將顯示: 在此處輸入圖片說明

我有一個Deploy Entity :(部分,它是由app / console生成的)

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="deploys")
 */
class Deploy {

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

  /**
   * @ORM\ManyToOne(targetEntity="Category", inversedBy="deploys")
   * @ORM\JoinColumn(name="category_id", referencedColumnName="id")
   */
  private $category;
  // etc

和一個類別實體:

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * @ORM\Entity
 * @ORM\Table(name="categories")
 */
class Category {

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

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

  /**
   * @ORM\Column(type="integer", length=10)
   */
  private $weight;

  /**
   * @ORM\OneToMany(targetEntity="Deploy", mappedBy="category")
   */
  private $deploys;

   /**
   * Constructor
   */
  public function __construct() {
    $this->deploys = new ArrayCollection();
  }

  // etc

這是延遲加載功能。 一旦您嘗試訪問它們,它們將從DB中加載。

嘗試簡單地訪問此集合的某些元素(例如,遍歷$deploys ),您會發現它會正常工作。

請注意,屏幕上有initialized: false屬性initialized: false 這意味着該集合尚未被訪問,因此Doctrine不必加載它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM