2016-09-06 6 views
1

私はSymfonyを初めて使用しています。私はブログサイトを作りたい。だから私は2つのエンティティを投稿し、ユーザーを作成しました。Symfony doctrine:ManyToOne関係が動作しない

http://symfony.com/doc/current/doctrine/associations.html 

AppBundle /エンティティ/ Post.php:

... 
/** 
* Post 
* 
* @ORM\Table(name="post") 
* @ORM\Entity(repositoryClass="AppBundle\Repository\PostRepository") 
*/ 
class Post 
{ /** 
    * @ORM\ManyToOne(targetEntity="User", inversedBy="post") 
    * @ORM\JoinColumn(name="user_id", referencedColumnName="id") 
    */ 
    private $user; 
    .... 
} 

AppBundle /エンティティ/ User.php:

... 
/** 
* User 
* 
* @ORM\Table(name="user") 
* @ORM\Entity(repositoryClass="AppBundle\Repository\UserRepository") 
*/ 
class User extends BaseUser 
{ 
    /** 
    * @ORM\OneToMany(targetEntity="Post", mappedBy="user") 
    */ 
    private $post; 
... 
} 
を私はここの上に説明したように、私もきちんとエンティティの両方に関連していると思います

ユーザーID(投稿を作成したユーザー)で投稿を保存できました。しかし、私はこれの逆を達成することはできません。すなわち、ユーザによって作成されたすべての投稿を得る。私はこれを達成しようとしています:

$em = $this->getDoctrine()->getManager(); 
$user = $em->getRepository('AppBundle:User')->find($this->getUser()->getId()); 
dump($user->getPost());exit; 

しかし、私は変数に投稿を取得していません。 (参考:データベースにユーザIDを持つ投稿があります)。ここで私は上記のために取得していますものです:

PostController.php on line 163: 
PersistentCollection {#103 ▼ 
    -snapshot: [] 
    -owner: User {#76 ▶} 
    -association: array:15 [ …15] 
    -em: EntityManager {#374 …11} 
    -backRefFieldName: "user" 
    -typeClass: ClassMetadata {#80 …} 
    -isDirty: false 
    #collection: ArrayCollection {#102 ▼ 
    -elements: [] 
    } 
    #initialized: false 
} 

注:私は、ユーザー管理のためのFosUserBundleを使用してい。ここで問題が発生しているかどうかは不明です。

ご協力いただければ幸いです。

おかげで、

Parthボラ

+0

いいえ、私は持っていない。もし、再生実体​​? –

+0

@MaxPを持っている。 とにかく、問題が修正されました –

答えて

1

は、私がここでの問題を得ました。上記のコードはすべて正しいです。私は、ユーザーが作成したすべての投稿を取得する1つの方法を呼び出すことを忘れていました。

$em = $this->getDoctrine()->getManager(); 
$user = $em->getRepository('AppBundle:User')->find($this->getUser()->getId()); 
dump($user->getPost()->getValues());exit; 

でgetValues()がPersistentCollectionクラスからデータを抽出する方法です。

PS:Symfonyのドキュメントには大きな改善が必要です。 :(

おかげで、

Parthボラ

関連する問題