태그 객체의 직렬화 방식을 덮어 쓸 수 있습니까? 현재 모든 것이 반환됩니다. id, created_at, updated_at 및 태그를 제외하고 싶습니다. IM은 JMS Serializer 번들, Doctrine Extension Taggable과 FPN Tag 번들을 사용합니다.DoctrineExtensions Taggable의 serializer 메타 데이터 덮어 쓰기
이것은 내 설정입니다. 엔티티의 네임 스페이스가 실제로 DoctrineExtensions가 문제 일 수있는 경우 태그 번들의 부모를 FPN으로 설정하는 것이 좋습니다.
대부분 엔티티 매개 변수는 DoctrineExtensions \ Taggable \ Entity \ Tag (id, name, created_at 등)에 있습니다. DoctrineExtensions를 확장 한 FPN 번들을 덮어 쓰고 있습니다. DoctrineExtensions는 번들이 아닌 라이브러리입니다.
어떻게하면됩니까?
# app/config/config.yml
# ...
jms_serializer:
metadata:
auto_detection: true
directories:
TagBundle:
namespace_prefix: "FPN\\TagBundle"
path: "@MYTagBundle/Resources/config/serializer/fpn"
# MY\TagBundle\Resources\config\serializer\fpn\Entity.Tag.yml
FPN\TagBundle\Entity\Tag:
exclusion_policy: ALL
properties:
id:
expose: false
name:
expose: true
created_at:
expose: false
updated_at:
expose: false
tagging:
expose: false
# src/MY/TagBundle/Entity/Tag.php
<?php
namespace MY\TagBundle\Entity;
use FPN\TagBundle\Entity\Tag as BaseTag;
class Tag extends BaseTag
{
}
# vendor/fpn/tag-bundle/FPN/TagBundle/Entity/Tag.php
<?php
namespace FPN\TagBundle\Entity;
use DoctrineExtensions\Taggable\Entity\Tag as BaseTag;
class Tag extends BaseTag
{
....
}
# src/MY/TagBundle/MYTagBundle.php
<?php
namespace MY\TagBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class MYTagBundle extends Bundle
{
// Is this unnecessary due to config.yml?
public function getParent()
{
return 'FPNTagBundle';
}
}
는'노출 : TRUE '(이름 속성)가 제대로 들여 쓰기를하지 않는 것
귀하의 설정 사항은 다음과 같이해야한다. 귀하의 질문이나 실제 yaml 파일에 오타가 있습니까? –
또한 속성 중 하나에 다음을 추가하여 구성이 실제로 사용되고 있는지 확인할 수 있습니까? 'serialized_name : 'fooBar'' –
그래, 그 말은 오타 였어. Symfony가 잘못 들여 쓰기를했다면 yaml 구문 오류가 발생했습니다. 나는 serialized_name을 곧 바꿀 것이다. – shapeshifter