필드 이름을 제공하여 엔터티에서 필드 값을 설정할 수 있습니까?

SteeveDroz

다른 사용자 정의 엔티티와 함께 ​​사용되어야하는 번들을 작성 중입니다. 이 번들이 해당 엔터티의 사용자 제공 필드에 액세스 할 수 있기를 바랍니다.

다음과 같은 방법이 $entity->set('field', 'value')있습니까? 리플렉션을 사용하여 처음부터해야합니까?

내가 이미 생각 해낸 것 :

컨트롤러에서 :

public function editAction(Request $request) {
  $content = $request->request->get('content'); // Example: "John Doe"
  $entity = $request->request->get('entity'); // Example: "SomeBundle:SomeEntity"
  $field = $request->request->get('field'); // Example: "name"
  $id = $request->request->get('id'); // Example: "42"

  $em = $this->getDoctrine()->getManager();
  $element = $em->getRepository($entity)->find($id); // Entity with id 42

  // How can I write this line?:
  $element->set($field, $content); //Alias for $element->setName($content);
  // ...
}
qooplmao

이 작업을 수행 할 수있는 Property Accessor 구성 요소를 사용할 수 있습니다 . 개체, 필드 이름 및 설정할 값을 제공하기 만하면 구성 요소가 나머지 (pubic 속성, _set 또는 setter)를 처리합니다.

use Symfony\Component\PropertyAccess\PropertyAccess;

// ...

$value = $request->get('value');
$em = $this->getDoctrine()->getManager();
$element = $em->getRepository($entity)->find($id); // Entity with id 42

$accessor = PropertyAccess::createPropertyAccessor();

if ($accessor->isWritable($element, 'fieldName')) {
    $accessor->setValue($element, 'fieldName', $value);
} else {
    throw new \Exception('fieldName is not writable');
}

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

필드 이름을 제공하여 엔터티에서 필드 값을 설정할 수 있습니까?

분류에서Dev

열 필드 값을 정의하여 PIG에서 열 필드를 만들 수 있습니까?

분류에서Dev

MS 워드에서 양식 acrofields를 사용하여 필드 값을 설정할 수 없습니다

분류에서Dev

동일한 테이블에서 필드 B의 값을 기반으로 필드 A의 기본값을 설정할 수 있습니까?

분류에서Dev

정적 필드에서 변수 값을 설정할 수 없습니다.

분류에서Dev

Python 데이터 클래스 : 필드의 기본 기본값을 설정할 수 있습니까?

분류에서Dev

필드를 필수로 설정 한 후에도 양식을 제출할 수 있습니다.

분류에서Dev

필터 필드의 queryset 값을 사용하여 django에서 모델의 인스턴스를 어떻게 필터링 할 수 있습니까?

분류에서Dev

유형을 사용하여 Rust 공용체의 특정 필드에 액세스 할 수 있습니까?

분류에서Dev

할당 식에서 필드 값을 설정할 수 없습니다.

분류에서Dev

MongoDB의 여러 필드에 단일 정렬을 지정할 수 있습니까?

분류에서Dev

odoo 9에서 many2one 필드의 기본값을 어떻게 설정할 수 있습니까?

분류에서Dev

setter 함수에 필드 이름을 전달하는 방법이 있습니까?

분류에서Dev

ng-repeat에서 필터를 사용하여 특정 필드에 대해 여러 항목을 필터링 할 수 있습니까?

분류에서Dev

jquery에서 숨겨진 필드에 값을 설정할 수 없습니다.

분류에서Dev

필드 이니셜 라이저는 변수를 설정하여 비 정적 필드, 메서드 또는 속성을 참조 할 수 없습니다.

분류에서Dev

쿼리 후 @Transient 필드 값을 어떻게 설정할 수 있습니까? 쿼리에 Hibernate Criteria 사용

분류에서Dev

삽입시 Ecto 모델의 일부 필드에 일부 값을 어떻게 설정할 수 있습니까?

분류에서Dev

Angular 9의 입력 필드에 이름 속성을 어떻게 강제 할 수 있습니까?

분류에서Dev

MongoDB의 값으로 필드 이름을 쿼리 할 수 있습니까?

분류에서Dev

엔티티 유형 필드가있는 목록에서 기본 선택된 값을 설정하는 방법

분류에서Dev

Haskell 데이터 유형에서 중복 필드 이름을 어떻게 리팩터링 할 수 있습니까?

분류에서Dev

심포니 엔티티 클래스에서 일부 필드의 값을 설정하는 방법

분류에서Dev

입력 필드에 기본값이지만 변경할 수있는 값을 어떻게 설정할 수 있습니까?

분류에서Dev

날짜 필드 값을 설정할 수 없습니다.

분류에서Dev

C # XML 문서에서 const 필드의 값을 참조 할 수 있습니까?

분류에서Dev

Django Rest Framework에서 공백이있는 필드 이름을 가질 수 있습니까?

분류에서Dev

Cloud Firestore의 서브 컬렉션에서 문서 필드 값을 쿼리하고 검색 할 수 있습니까?

분류에서Dev

jOOQ 객체 매핑을 구성하여 POJO의 모든 필드가 설정되도록 할 수 있습니까?

Related 관련 기사

  1. 1

    필드 이름을 제공하여 엔터티에서 필드 값을 설정할 수 있습니까?

  2. 2

    열 필드 값을 정의하여 PIG에서 열 필드를 만들 수 있습니까?

  3. 3

    MS 워드에서 양식 acrofields를 사용하여 필드 값을 설정할 수 없습니다

  4. 4

    동일한 테이블에서 필드 B의 값을 기반으로 필드 A의 기본값을 설정할 수 있습니까?

  5. 5

    정적 필드에서 변수 값을 설정할 수 없습니다.

  6. 6

    Python 데이터 클래스 : 필드의 기본 기본값을 설정할 수 있습니까?

  7. 7

    필드를 필수로 설정 한 후에도 양식을 제출할 수 있습니다.

  8. 8

    필터 필드의 queryset 값을 사용하여 django에서 모델의 인스턴스를 어떻게 필터링 할 수 있습니까?

  9. 9

    유형을 사용하여 Rust 공용체의 특정 필드에 액세스 할 수 있습니까?

  10. 10

    할당 식에서 필드 값을 설정할 수 없습니다.

  11. 11

    MongoDB의 여러 필드에 단일 정렬을 지정할 수 있습니까?

  12. 12

    odoo 9에서 many2one 필드의 기본값을 어떻게 설정할 수 있습니까?

  13. 13

    setter 함수에 필드 이름을 전달하는 방법이 있습니까?

  14. 14

    ng-repeat에서 필터를 사용하여 특정 필드에 대해 여러 항목을 필터링 할 수 있습니까?

  15. 15

    jquery에서 숨겨진 필드에 값을 설정할 수 없습니다.

  16. 16

    필드 이니셜 라이저는 변수를 설정하여 비 정적 필드, 메서드 또는 속성을 참조 할 수 없습니다.

  17. 17

    쿼리 후 @Transient 필드 값을 어떻게 설정할 수 있습니까? 쿼리에 Hibernate Criteria 사용

  18. 18

    삽입시 Ecto 모델의 일부 필드에 일부 값을 어떻게 설정할 수 있습니까?

  19. 19

    Angular 9의 입력 필드에 이름 속성을 어떻게 강제 할 수 있습니까?

  20. 20

    MongoDB의 값으로 필드 이름을 쿼리 할 수 있습니까?

  21. 21

    엔티티 유형 필드가있는 목록에서 기본 선택된 값을 설정하는 방법

  22. 22

    Haskell 데이터 유형에서 중복 필드 이름을 어떻게 리팩터링 할 수 있습니까?

  23. 23

    심포니 엔티티 클래스에서 일부 필드의 값을 설정하는 방법

  24. 24

    입력 필드에 기본값이지만 변경할 수있는 값을 어떻게 설정할 수 있습니까?

  25. 25

    날짜 필드 값을 설정할 수 없습니다.

  26. 26

    C # XML 문서에서 const 필드의 값을 참조 할 수 있습니까?

  27. 27

    Django Rest Framework에서 공백이있는 필드 이름을 가질 수 있습니까?

  28. 28

    Cloud Firestore의 서브 컬렉션에서 문서 필드 값을 쿼리하고 검색 할 수 있습니까?

  29. 29

    jOOQ 객체 매핑을 구성하여 POJO의 모든 필드가 설정되도록 할 수 있습니까?

뜨겁다태그

보관