2017-09-22 17 views

cevap

3

Sonunda bir cevap buldum! Birisi ek açıklamaları ile daha iyi ve daha kısa bir yol bulursa ben ödül (ben geri alamıyorum çünkü) verebilirsiniz.

Yuvalanmış özellik gruplarını geçersiz kılmanın tek yolu, görünümden seri hale getirici bağlamı almak ve grupları buradan ayarlamaktır. İşte burada:

/** 
* @Rest\Get("/api/users/profile", name="api_get_profile") 
*/ 
public function profileAction(Request $request) 
{ 
    $user = $this->getUser(); 

    // sets different groups for nested properties 
    $view = $this->view($user); 
    $view->getContext()->setGroups(array(
     'Default', 
     'user_detail', 
     'user_profile', 
     'friends' => array(
      'Default', 
     ) 
    )); 

    return $this->handleView($view); 
} 

Bu şekilde benim profileAction sadece tarif edilen özellikleri içerecektir tüm user_detail ve user_profile gruplarla bir kullanıcıyı, ancak kullanıcı bir dizi içerir friends mülkiyet, öğeleri dönecektir Default grubu.

{ 
    "id": 532, 
    "username": "someuser", 
    "email": "[email protected]", 
    "enabled": true, 
    "last_login": "2017-11-10T09:45:51+01:00", 
    "notification_id": "ABC", 
    "avatar_id": 3, 
    "friends": [ 
     { 
      "id": 530, 
      "username": "anotheruser", 
      "avatar_id": 5 
     }, 
     { 
      "id": 554, 
      "username": "johndoe", 
      "avatar_id": 7 
     } 
    ] 
} 

Selamlar:

Bu

sonucudur.