2017-07-26 14 views
0

クエリの結果、関連するテーブルの値が見つからないという問題があります。Doctrine2に関連するテーブルの値がありません

私のクエリは次のとおりです。フィールドhNameとhCountryの値が欠落しているvardumpの出力で

$em = $this->getDoctrine() 
     ->getManager(); 

$repo = $em->getRepository("DbBundle:Auto"); 
$auto = $repo->findAll(); 

var_dump($auto); 

... 私は教義が自動的にrealtedテーブルの値をロードしたり、私がしていることを期待さらに参加する?

C:\Apache24\htdocs\src\DbBundle\Controller\DefaultController.php:90: 
array (size=3) 
    0 => 
    object(DbBundle\Entity\Auto)[427] 
     private 'aId' => int 7 
     private 'aName' => string 'A5' (length=2) 
     private 'aPs' => int 190 
     private 'aHersteller' => 
     object(Proxies\__CG__\DbBundle\Entity\Hersteller)[442] 
      public '__initializer__' => 
      object(Closure)[435] 
       ... 
      public '__cloner__' => 
      object(Closure)[437] 
       ... 
      public '__isInitialized__' => boolean false 
      private 'hId' (DbBundle\Entity\Hersteller) => int 1 
      private 'hName' (DbBundle\Entity\Hersteller) => null 
      private 'hCountry' (DbBundle\Entity\Hersteller) => null 
    1 => 
    object(DbBundle\Entity\Auto)[441] 
     private 'aId' => int 8 
     private 'aName' => string 'Ibiza' (length=5) 
     private 'aPs' => int 130 
     private 'aHersteller' => 
     . 
     . 
     .ASO 

エンティティ:オート

/** 
* Auto 
* 
* @ORM\Table(name="AUTO", uniqueConstraints={@ORM\UniqueConstraint(name="const_auto_name", columns={"A_NAME"})}, indexes={@ORM\Index(name="A_HERSTELLER", columns={"A_HERSTELLER"})}) 
* @ORM\Entity 
*/ 
class Auto 
{ 
    /** 
    * @var integer 
    * 
    * @ORM\Column(name="A_ID", type="smallint") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="IDENTITY") 
    */ 
    private $aId; 

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

    /** 
    * @var integer 
    * 
    * @ORM\Column(name="A_PS", type="smallint", nullable=true) 
    */ 
    private $aPs = '0'; 

    /** 
    * @var \DbBundle\Entity\Hersteller 
    * 
    * @ORM\ManyToOne(targetEntity="DbBundle\Entity\Hersteller") 
    * @ORM\JoinColumns({ 
    * @ORM\JoinColumn(name="A_HERSTELLER", referencedColumnName="H_ID", fetch="EAGER") 
    * }) 
    */ 
    private $aHersteller; 

エンティティ:あなたはEntityRepositoryでカスタムメソッドを作成し、関連するエンティティに参加してエンティティを選択する必要がHersteller

/** 
* Hersteller 
* 
* @ORM\Table(name="HERSTELLER", uniqueConstraints={@ORM\UniqueConstraint(name="const_hersteller_name", columns={"H_NAME"})}) 
* @ORM\Entity 
*/ 
class Hersteller 
{ 
    /** 
    * @var integer 
    * 
    * @ORM\Column(name="H_ID", type="smallint") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="IDENTITY") 
    */ 
    private $hId; 

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

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

Table structure and content:

答えて

0

namespace AppBundle\Repository; 

use Doctrine\ORM\EntityRepository; 

class AutoRepository extends EntityRepository 
{ 
    public function findAll() 
    { 
     return $this->createQueryBuilder('a') 
      ->select('a','h'); 
      ->join('a.aHersteller', 'h'); 
      ->getQuery() 
      ->getResult() 
     ; 
    } 
} 
関連する問題