2011-11-18 1 views

답변

2

User 클래스 생성자에서 설정하십시오.

FOSUserBundle의 사용자 constructor에서 새 사용자의 기본값을 설정하는 좋은 예를 찾을 수 있습니다.

이 접근법의 장점 중 하나는 지속성 계층 이벤트에 의존하지 않으며 지속성 계층 없이도 작동한다는 것입니다.

1

사용자 엔터티에 prePersist 이벤트를 추가합니다.

사용자 클래스에 임의로 사용자의 색 속성을 설정하는 setRandomColor 메서드를 정의하십시오.

그런 다음 doctrine 엔티티 config에 prePersist 이벤트로 추가하십시오. ,

$this->getUser()->getAttribute('attr-name'); 

하지만 :

lifecycleCallbacks: 
    prePersist: [ setRandomColor ] 
0

사용하면 단일 세션에서 사용자 색상을 필요로하는 경우 당신이하고있는 사용자에 대한 속성을 정의 할 수 있습니다

$this->getUser()->setAttribute('attr-name',$attr-value); 

와 함께 그 속성을 얻을 속성이 사용자 테이블의 속성 인 것처럼 사용자가 원할 경우

  • (명백하게) 사용자의 테이블의 기본 키를 통해 hash function를 사용하여 색상을 얻을 스키마를 업데이트하고 테이블

  • 의 필드를 추가합니다.

행운을 빈다.