Setting serialization groups for entity in other bundle with FOSRestBundle / JMSSerializerBundle
I have a simple REST api created using FOSRestBundle, and returns serialized objects using JMSSerializerBundle.
One of the entities of my bundle uses an entity located in another bundle.
I set up serialization groups for my entity, but they are obviously not set for the aggregated entity so its json result is empty.
I've followed the documentation for YAML groups configuration: http://jmsyst.com/libs/serializer/master/reference/yml_reference but the file seems to be unused (adding groups to the entity's properties has no effect, and I don't get any errors if my YAML file is invalid).
Here's the code:
MyCompanyMyBundleEntityMeeting.php
class Meeting
/**
* @var Point
*
* @ORMColumn(name="location", type="point", nullable=true)
* @JMSGroups("privateContact")
*/
private $location;
// Getters, setters and other stuff
ACMESomeBundleORMPoint.php
class Point
/**
* @var float
*/
private $latitude;
/**
* @var float
*/
private $longitude;
// Getters, setters
MyCompanyMyBundleResourcesconfigserializerModel.Point.yml
ACMESomeBundleORMPoint:
properties:
latitude:
groups: ['privateContact']
longitude:
groups: ['privateContact']
MyCompanyMyBundleControllerApiController.php
/**
* @RestView(serializerGroups="privateContact")
*/
public function getMeetingAction()
...
return array(
'status' => 'OK',
'meeting' => $meeting
);
Resulting JSON
"meeting":"id":10,"date":"2015-07-16T19:20:00+0200","location":
php symfony fosrestbundle jmsserializerbundle
add a comment |
I have a simple REST api created using FOSRestBundle, and returns serialized objects using JMSSerializerBundle.
One of the entities of my bundle uses an entity located in another bundle.
I set up serialization groups for my entity, but they are obviously not set for the aggregated entity so its json result is empty.
I've followed the documentation for YAML groups configuration: http://jmsyst.com/libs/serializer/master/reference/yml_reference but the file seems to be unused (adding groups to the entity's properties has no effect, and I don't get any errors if my YAML file is invalid).
Here's the code:
MyCompanyMyBundleEntityMeeting.php
class Meeting
/**
* @var Point
*
* @ORMColumn(name="location", type="point", nullable=true)
* @JMSGroups("privateContact")
*/
private $location;
// Getters, setters and other stuff
ACMESomeBundleORMPoint.php
class Point
/**
* @var float
*/
private $latitude;
/**
* @var float
*/
private $longitude;
// Getters, setters
MyCompanyMyBundleResourcesconfigserializerModel.Point.yml
ACMESomeBundleORMPoint:
properties:
latitude:
groups: ['privateContact']
longitude:
groups: ['privateContact']
MyCompanyMyBundleControllerApiController.php
/**
* @RestView(serializerGroups="privateContact")
*/
public function getMeetingAction()
...
return array(
'status' => 'OK',
'meeting' => $meeting
);
Resulting JSON
"meeting":"id":10,"date":"2015-07-16T19:20:00+0200","location":
php symfony fosrestbundle jmsserializerbundle
add a comment |
I have a simple REST api created using FOSRestBundle, and returns serialized objects using JMSSerializerBundle.
One of the entities of my bundle uses an entity located in another bundle.
I set up serialization groups for my entity, but they are obviously not set for the aggregated entity so its json result is empty.
I've followed the documentation for YAML groups configuration: http://jmsyst.com/libs/serializer/master/reference/yml_reference but the file seems to be unused (adding groups to the entity's properties has no effect, and I don't get any errors if my YAML file is invalid).
Here's the code:
MyCompanyMyBundleEntityMeeting.php
class Meeting
/**
* @var Point
*
* @ORMColumn(name="location", type="point", nullable=true)
* @JMSGroups("privateContact")
*/
private $location;
// Getters, setters and other stuff
ACMESomeBundleORMPoint.php
class Point
/**
* @var float
*/
private $latitude;
/**
* @var float
*/
private $longitude;
// Getters, setters
MyCompanyMyBundleResourcesconfigserializerModel.Point.yml
ACMESomeBundleORMPoint:
properties:
latitude:
groups: ['privateContact']
longitude:
groups: ['privateContact']
MyCompanyMyBundleControllerApiController.php
/**
* @RestView(serializerGroups="privateContact")
*/
public function getMeetingAction()
...
return array(
'status' => 'OK',
'meeting' => $meeting
);
Resulting JSON
"meeting":"id":10,"date":"2015-07-16T19:20:00+0200","location":
php symfony fosrestbundle jmsserializerbundle
I have a simple REST api created using FOSRestBundle, and returns serialized objects using JMSSerializerBundle.
One of the entities of my bundle uses an entity located in another bundle.
I set up serialization groups for my entity, but they are obviously not set for the aggregated entity so its json result is empty.
I've followed the documentation for YAML groups configuration: http://jmsyst.com/libs/serializer/master/reference/yml_reference but the file seems to be unused (adding groups to the entity's properties has no effect, and I don't get any errors if my YAML file is invalid).
Here's the code:
MyCompanyMyBundleEntityMeeting.php
class Meeting
/**
* @var Point
*
* @ORMColumn(name="location", type="point", nullable=true)
* @JMSGroups("privateContact")
*/
private $location;
// Getters, setters and other stuff
ACMESomeBundleORMPoint.php
class Point
/**
* @var float
*/
private $latitude;
/**
* @var float
*/
private $longitude;
// Getters, setters
MyCompanyMyBundleResourcesconfigserializerModel.Point.yml
ACMESomeBundleORMPoint:
properties:
latitude:
groups: ['privateContact']
longitude:
groups: ['privateContact']
MyCompanyMyBundleControllerApiController.php
/**
* @RestView(serializerGroups="privateContact")
*/
public function getMeetingAction()
...
return array(
'status' => 'OK',
'meeting' => $meeting
);
Resulting JSON
"meeting":"id":10,"date":"2015-07-16T19:20:00+0200","location":
php symfony fosrestbundle jmsserializerbundle
php symfony fosrestbundle jmsserializerbundle
asked May 12 '15 at 10:26
Jukurrpa
2,29853463
2,29853463
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
For anyone else who has encountered this problem, I found that the View annotation in this example did not work. However, if I set the serialization context with the correct group in the controller action then it worked just fine:
$view->setSerializationContext(SerializationContext::create()->setGroups('site'));
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f30188138%2fsetting-serialization-groups-for-entity-in-other-bundle-with-fosrestbundle-jms%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
For anyone else who has encountered this problem, I found that the View annotation in this example did not work. However, if I set the serialization context with the correct group in the controller action then it worked just fine:
$view->setSerializationContext(SerializationContext::create()->setGroups('site'));
add a comment |
For anyone else who has encountered this problem, I found that the View annotation in this example did not work. However, if I set the serialization context with the correct group in the controller action then it worked just fine:
$view->setSerializationContext(SerializationContext::create()->setGroups('site'));
add a comment |
For anyone else who has encountered this problem, I found that the View annotation in this example did not work. However, if I set the serialization context with the correct group in the controller action then it worked just fine:
$view->setSerializationContext(SerializationContext::create()->setGroups('site'));
For anyone else who has encountered this problem, I found that the View annotation in this example did not work. However, if I set the serialization context with the correct group in the controller action then it worked just fine:
$view->setSerializationContext(SerializationContext::create()->setGroups('site'));
edited Nov 12 '18 at 18:11
cezar
5,49332454
5,49332454
answered May 23 '16 at 12:59
frak
6311927
6311927
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f30188138%2fsetting-serialization-groups-for-entity-in-other-bundle-with-fosrestbundle-jms%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown