2017-10-25 14 views
0

doctrine을 사용하여 MySQL 데이터베이스에서 객체를 가져 오려고합니다. 그것은 다른 것과 일대일 관계가 있습니다. 이 오류가 나타납니다. Notice: Undefined index: id 이 작업을 수행하기 위해 해결해야 할 사항은 무엇입니까? 코드는 매우 간단 인출 내, 내가 모든 개체를 가져 오기 위해 시도 :Symfony 3 Doctrine undefined index

Article.php

ArticleTypes.php

/** 
 
    * @ORM\Entity 
 
    * @ORM\Table(name="Article") 
 
    */ 
 
    class Article 
 
    { 
 
     /** 
 
     * @ORM\Column(type="integer") 
 
     * @ORM\Id 
 
     * @ORM\GeneratedValue(strategy="AUTO") 
 
     */ 
 
     private $ID; 
 
     /** 
 
     * @ORM\OneToOne(targetEntity="ArticleTypes", inversedBy="articleTypeId") 
 
     * @ORM\JoinColumn(name="articleTypeId", referencedColumnName="id") 
 
     */ 
 
     private $articleType; 
 
     /** 
 
     * @ORM\Column(name="articleName", type="text") 
 
     */ 
 
     private $articleName; 
 
     /** 
 
     * @ORM\Column(name="content", type="text") 
 
     */ 
 
     private $content; 
 

 
     /** 
 
     * @ORM\Column(name="image", type="string") 
 
     * @Assert\File(mimeTypes={ "image/png" }) 
 
     */ 
 
     public $image; 
 

 
     public function getArticleImage() 
 
     { 
 
      return $this->image; 
 
     } 
 

 
     public function setArticleImage($newImage) 
 
     { 
 
      $this->image = $newImage; 
 
     } 
 

 
     public function getArticleContent() 
 
     { 
 
      return $this->content; 
 
     } 
 

 
     public function setArticleContent($name) 
 
     { 
 
      $this->content = $name; 
 
     } 
 

 
     public function getArticleName() 
 
     { 
 
      return $this->articleName; 
 
     } 
 

 
     public function setArticleName($name) 
 
     { 
 
      $this->articleName = $name; 
 
     } 
 

 
     public function getArticleType() 
 
     { 
 
      return $this->articleType; 
 
     } 
 

 
     public function setArticleType($type) 
 
     { 
 
      $this->articleType = $type; 
 
     } 
 

 
    }
:

$emArt = $this->getDoctrine()->getRepository(Article::class); 
    $articles = $emArt->findAll(); 

모델은 다음과 같습니다

/** 
 
* @ORM\Entity 
 
* @ORM\Table(name="ArticleTypes") 
 
*/ 
 
class ArticleTypes 
 
{ 
 
    /** 
 
    * @ORM\Column(type="integer") 
 
    * @ORM\Id 
 
    * @ORM\GeneratedValue(strategy="AUTO") 
 
    * @ORM\OneToOne(targetEntity="Article", mappedBy="articleTypeId") 
 
    */ 
 
    private $ID; 
 
    /** 
 
    * @ORM\Column(name="articleType", type="text") 
 
    */ 
 
    private $articleType; 
 

 
    public function getArticleType() 
 
    { 
 
     return $this->articleType; 
 
    } 
 
    public function setArticleType($newType) 
 
    { 
 
     $this->articleType = $newType; 
 
    } 
 
}

+2

'id'에 대한 getter가없고 'ID'속성을 대문자로 사용했을 가능성이 있습니다. 답변과 관련하여 –

답변

1

PHP 알림은 없습니다. 또한 오류 번호가있는 파일에 줄 번호가 있어야합니다?

는하지만 너무 당신의 교리 매핑의 오류를 보았다 :

/** 
* @ORM\Entity 
* @ORM\Table(name="Article") 
*/ 
class Article 
{ 
    /** 
    * @ORM\OneToOne(targetEntity="ArticleTypes", inversedBy="article") 
    * @ORM\JoinColumn(name="articleTypeId", referencedColumnName="id") 
    */ 
    private $articleType; 
    .... 
} 

을 그리고 :

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

    /** 
    * @var Article $article 
    * @ORM\OneToOne(targetEntity="Article", mappedBy="articleType") 
    */ 
    private $article; 

    .... 
} 

당신은 당신은 객체의 관계를 연결해야합니다, 필드와 같은 교리 주석을 사용할 수 없습니다 1 대 1 관계가 있더라도 다른 ID를 가질 수 있습니다.

+0

PHP 통지가 아니며 Symfony 자체에서 가져온 것입니다. –