Symfony를 처음 사용합니다. 블로그 사이트를 만들고 싶습니다. 그래서 나는 두 개의 엔티티를 게시하고 사용자를 만들었습니다. 나는 또한 관련이 있다고 생각 모두 제대로 여기에 설명 된대로 개체 :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;
그러나 나는 변수에 어떤 게시물도 얻지 못했다. (FYI : 데이터베이스에 사용자 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 유물
당신에게 재생 된 기관이 있나요? –
@MaxP을. 아니 내가하지 않았습니다. 어쨌든, 문제가 해결되었습니다 –