Czy mogę nadpisać sposób serializowania obiektu znacznika? Obecnie wszystko jest zwracane, chciałbym wykluczyć identyfikator, created_at, updated_at i tagging. Im przy użyciu pakietu JMS Serializer, Doctrine Rozszerzenia Taggable z pakietu znaczników FPN.Zastąp metadane serializera dla DoctrineExtensions Taggable
To jest moja konfiguracja, myślę, że ustawienie rodzica pakietu tagów na FPN, gdy przestrzeń nazw Jednostki to faktycznie DoctrineExtensions może być problemem.
Większość parametrów encji znajduje się w DoctrineExtensions \ Taggable \ Entity \ Tag (id, name, created_at etc). Nadpisuję pakiet FPN, który rozszerza DoctrineExtensions. DoctrineExtensions to biblioteka, a nie pakiet.
Jak mogę to zrobić?
# 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';
}
}
'wystawiać: TRUE (dla właściwości name) nie wydaje się być odpowiednio wcięte. Czy jest to literówka w twoim pytaniu, czy w twoim prawdziwym pliku yaml? –
Można również dodać do jednej z właściwości, aby sprawdzić, czy konfiguracja jest w rzeczywistości używana? 'serialized_name: 'fooBar'' –
Tak, to był literówka, który naprawiłem. Symfony powinno było rzucić na niego błąd analizy, jeśli było źle wcięte. Wkrótce zmienię nazwę serialized_name. – shapeshifter