사용자의 아바타 엔티티를 가져와 Symfony2에서 제거 할 수 없습니다.

레오 그 아웃

사용자 엔터티와 일대일 관계가있는 아바타 엔터티가 있습니다.

//MyBundle/Entity/User.php

/**
 * @ORM\OneToOne(targetEntity="Participso\UserBundle\Entity\Avatar", cascade={"remove", "persist"})
 */
protected $avatar;

사용자에게 이미 아바타가있는 경우 다음을 사용하여 이전 아바타를 제거하고 싶습니다.

//MyBundle/Controller/UserController.php

if ($avatarForm->isValid()) {
    $em = $this->getDoctrine()->getManager();

    if($currentUser->getAvatar()){
        $em->remove($currentUser->getAvatar());
    }

    $currentUser->setAvatar($avatar);
    $em->persist($currentUser); //"cascade=persist" from User
    $em->flush();
}

이:

//MyBundle/Entity/Avatar.php

/**
 * @ORM\PostRemove()
 */
public function removeUpload()
{
    $file = __DIR__.'/../../../../web/uploads/avatar/' . $this->fileName;
    unlink($file);
}

그러나 var_dump($currentUser->getAvatar())파일 이름이 데이터베이스에 존재하더라도 빈 FileName을 얻습니다.

object(Proxies\__CG__\Participso\UserBundle\Entity\Avatar)[355]
    public '__initializer__' => 
object(Closure)[348]
    public '__cloner__' => 
object(Closure)[349]
    public '__isInitialized__' => boolean false
    private 'id' (Participso\UserBundle\Entity\Avatar) => int 20
    public 'file' => null
    private 'fileName' (Participso\UserBundle\Entity\Avatar) => null

그리고 내가 할 때 var_dump($currentUser->getAvatar()->getFileName), 나는 파일 이름을 얻습니다! (그리고 이전에 본 것처럼 NULL이 아님) ...

누구 아이디어가 있습니까?

레오 그 아웃

답장을 보내 주셔서 감사합니다!

사실 그것은 교리의 "지연 로딩"때문입니다.

만약 내가한다면 :

var_dump($currentUser->getAvatar());exit;

출력 :

object(Proxies\__CG__\Participso\UserBundle\Entity\Avatar)[355]
    private 'id' (Participso\UserBundle\Entity\Avatar) => int 20
    private 'fileName' (Participso\UserBundle\Entity\Avatar) => null

하지만 내가하면

$whatever = $currentUser->getAvatar()->getFileName();
var_dump($currentUser->getAvatar());exit;

출력 :

object(Proxies\__CG__\Participso\UserBundle\Entity\Avatar)[355]
    private 'id' (Participso\UserBundle\Entity\Avatar) => int 20
    private 'fileName' (Participso\UserBundle\Entity\Avatar) => string 'd4e5eadd3757498a22b14ad1f81869c2baf459d3.png'

이것은 꽤 성가신 일입니다.이 문제를 해결하기 위해 새 게시물을 작성하겠습니다.

편집 : 새 게시물이 여기 에 있으며 해결되었습니다.

교리에서 지연로드를 방지하려면 fetch="EAGER"부모 Entity를 추가 하십시오.

/**
 * @OneToOne(targetEntity="User")
 * @JoinColumn(name="user_id", referencedColumnName="id", fetch="EAGER")
 */

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

PHP에서 html 엔티티를 제거 할 수 없습니다.

분류에서Dev

Glassfish-JPA를 사용하여 엔티티를 제거 할 수 없습니다.

분류에서Dev

Linq 쿼리가 엔티티를 던지거나 linq에서 엔티티로 복합 유형을 생성 할 수 없습니다. select new {..}를 사용하여 클래스 이름을 제거하더라도

분류에서Dev

오류 : 엔티티와 POJO를 사용할 수는 공개 생성자가 있어야합니다 - 자바

분류에서Dev

Symfony2 : 사용자 엔티티에서 그룹의 역할을 가져 오지만 엔티티 내부 쿼리는 피합니다.

분류에서Dev

Spring 데이터 스타터 프로젝트에 두 번째 엔티티를 추가 할 수 없습니다.

분류에서Dev

JPA2 엔티티를 자동 검색 할 수 없습니다.

분류에서Dev

foreach에 이미 존재하는 엔티티를 추가 할 수 없습니다.

분류에서Dev

엔티티 Symfony2를 업데이트 할 수 없습니다.

분류에서Dev

서버없이 엔티티 클래스와 EntityManager를 사용할 수 있습니까?

분류에서Dev

EntityManager # remove ()를 통해 엔티티를 제거 할 수 없습니다.

분류에서Dev

로그인 양식에 서클 사용자 아바타를 추가 할 수 없습니다.

분류에서Dev

JSP에서 JPA를 사용하면 @ManyToOne 매핑 된 엔티티의 속성을 검색 할 수 없습니다.

분류에서Dev

linq-to-sql 또는 엔티티 프레임 워크를 사용하여 두 개의 다른 상위 엔티티에 엔티티를 어떻게 추가 할 수 있습니까?

분류에서Dev

lucene에서 엔티티를 검색 할 수 없습니다.

분류에서Dev

사용자 아바타를 가져올 수 없습니다.

분류에서Dev

사용자 아바타를 가져올 수 없습니다.

분류에서Dev

SoapClient가 외부 엔티티를로드 할 수 없습니다.

분류에서Dev

JPA ManyToMany 매핑 문제 (동일한 엔티티를 다른 엔티티에 매핑 할 수 없음)

분류에서Dev

엔티티 프레임 워크에서 상위를 거치지 않고 하위 엔티티를 업데이트 할 수 없습니다.

분류에서Dev

엔터티가 컨텍스트에 없기 때문에 'MyTable'유형의 엔터티에 대해 멤버 'CurrentValues'를 호출 할 수 없습니다.

분류에서Dev

Glassfish에서 EclipseLink를 사용하여 JPA 엔티티를 유지할 수 없습니다.

분류에서Dev

Symfony2는 ManyToMany 관계를 사용하여 반전 된 엔티티에서 객체를 가져옵니다.

분류에서Dev

Entity Framework 6.x는 관계에서 연결된 엔터티를 제거 할 수 없습니다.

분류에서Dev

SonataAdmin setSubClasses가 엔티티 이름에서 문자를 제거합니다.

분류에서Dev

ViewModel에 목록으로 엔티티를 추가 할 수 없습니까?

분류에서Dev

서로 다른 엔티티 유형의 ID가 겹치는 경우 ObjectIdGenerators.PropertyGenerator와 함께 @JsonIdentityInfo를 사용할 수 있습니까?

분류에서Dev

엔티티 생성기를 사용하여 사용자 기본 엔티티와 단방향 일대일 관계를 생성 할 수 있습니까?

분류에서Dev

JPA로 elasticsearch에 대한 최대 절전 모드 검색은 jpa가 엔티티를 생성 할 때 인덱스를 자동 생성 할 수 없습니다.

Related 관련 기사

  1. 1

    PHP에서 html 엔티티를 제거 할 수 없습니다.

  2. 2

    Glassfish-JPA를 사용하여 엔티티를 제거 할 수 없습니다.

  3. 3

    Linq 쿼리가 엔티티를 던지거나 linq에서 엔티티로 복합 유형을 생성 할 수 없습니다. select new {..}를 사용하여 클래스 이름을 제거하더라도

  4. 4

    오류 : 엔티티와 POJO를 사용할 수는 공개 생성자가 있어야합니다 - 자바

  5. 5

    Symfony2 : 사용자 엔티티에서 그룹의 역할을 가져 오지만 엔티티 내부 쿼리는 피합니다.

  6. 6

    Spring 데이터 스타터 프로젝트에 두 번째 엔티티를 추가 할 수 없습니다.

  7. 7

    JPA2 엔티티를 자동 검색 할 수 없습니다.

  8. 8

    foreach에 이미 존재하는 엔티티를 추가 할 수 없습니다.

  9. 9

    엔티티 Symfony2를 업데이트 할 수 없습니다.

  10. 10

    서버없이 엔티티 클래스와 EntityManager를 사용할 수 있습니까?

  11. 11

    EntityManager # remove ()를 통해 엔티티를 제거 할 수 없습니다.

  12. 12

    로그인 양식에 서클 사용자 아바타를 추가 할 수 없습니다.

  13. 13

    JSP에서 JPA를 사용하면 @ManyToOne 매핑 된 엔티티의 속성을 검색 할 수 없습니다.

  14. 14

    linq-to-sql 또는 엔티티 프레임 워크를 사용하여 두 개의 다른 상위 엔티티에 엔티티를 어떻게 추가 할 수 있습니까?

  15. 15

    lucene에서 엔티티를 검색 할 수 없습니다.

  16. 16

    사용자 아바타를 가져올 수 없습니다.

  17. 17

    사용자 아바타를 가져올 수 없습니다.

  18. 18

    SoapClient가 외부 엔티티를로드 할 수 없습니다.

  19. 19

    JPA ManyToMany 매핑 문제 (동일한 엔티티를 다른 엔티티에 매핑 할 수 없음)

  20. 20

    엔티티 프레임 워크에서 상위를 거치지 않고 하위 엔티티를 업데이트 할 수 없습니다.

  21. 21

    엔터티가 컨텍스트에 없기 때문에 'MyTable'유형의 엔터티에 대해 멤버 'CurrentValues'를 호출 할 수 없습니다.

  22. 22

    Glassfish에서 EclipseLink를 사용하여 JPA 엔티티를 유지할 수 없습니다.

  23. 23

    Symfony2는 ManyToMany 관계를 사용하여 반전 된 엔티티에서 객체를 가져옵니다.

  24. 24

    Entity Framework 6.x는 관계에서 연결된 엔터티를 제거 할 수 없습니다.

  25. 25

    SonataAdmin setSubClasses가 엔티티 이름에서 문자를 제거합니다.

  26. 26

    ViewModel에 목록으로 엔티티를 추가 할 수 없습니까?

  27. 27

    서로 다른 엔티티 유형의 ID가 겹치는 경우 ObjectIdGenerators.PropertyGenerator와 함께 @JsonIdentityInfo를 사용할 수 있습니까?

  28. 28

    엔티티 생성기를 사용하여 사용자 기본 엔티티와 단방향 일대일 관계를 생성 할 수 있습니까?

  29. 29

    JPA로 elasticsearch에 대한 최대 절전 모드 검색은 jpa가 엔티티를 생성 할 때 인덱스를 자동 생성 할 수 없습니다.

뜨겁다태그

보관