小编esc*_*hov的帖子

使用JMS Serializer仅将实体关系序列化为Id

我正在尝试使用JMS Serializer序列化实体关系.

这是实体:

class Ad
{ 

    /**
     * @Type("string")
     * @Groups({"manage"})
     * 
     * @var string
     */
    private $description;

    /**
     * @Type("Acme\SearchBundle\Entity\Country")
     * @Groups({"manage"})
     * 
     * @var \Acme\SearchBundle\Entity\Country
     */
    private $country;

    /**
     * @Type("string")
     * @Groups({"manage"})
     * 
     * @var string
     */
    private $title;

    /**
     * Set description
     *
     * @param string $description
     * @return Ad
     */
    public function setDescription($description)
    {
        $this->description = $description;

        return $this;
    }

    /**
     * Get description
     *
     * @return string 
     */
    public function getDescription()
    {
        return $this->description; …
Run Code Online (Sandbox Code Playgroud)

php symfony jmsserializerbundle

26
推荐指数
4
解决办法
2万
查看次数

JMS Serialize @VirtualProperty不起作用

我正在尝试添加一个序列化方法,但JMS Serialize不会显示该字段.

use JMS\Serializer\Annotation\Groups;
use JMS\Serializer\Annotation\VirtualProperty;
use JMS\Serializer\Annotation\SerializedName;

class Ads
{   
    /**
     * @VirtualProperty
     * @Type("string")
     * @SerializedName("Foo")
     * @Groups({"manage"})
     */
    public function foo(){
        $foo = 'foo';
        return $foo;
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

然后:

use JMS\Serializer\SerializationContext;
use JMS\Serializer\SerializerBuilder;

...

$context = new SerializationContext();
$context->setGroups(array('manage'));

$serializer = JMS\Serializer\SerializerBuilder::create()->build();
$jsonContent = $serializer->serialize($ad, 'json', $context);
Run Code Online (Sandbox Code Playgroud)

我还没有看到任何如何使用VirtualProperty的示例.

语法是否正确?怎么了?

谢谢.

php symfony jmsserializerbundle

8
推荐指数
1
解决办法
1万
查看次数

如何正确使用Forms,FOS Rest Bundle以及Symfony2中的多对多关系

我正在使用Symfony2 Forms和FOSRestBundle.

我正在尝试保存在数据库中,这是一个具有多对多关系的实体.

我创建了一个带有集合字段的表单(http://symfony.com/doc/master/cookbook/form/form_collections.html),如下所示:

class MainType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('name');
        $builder->add('description');

        $builder->add('others', 'collection', array(
            'type' => new OtherType()
        ));
    }

    public function getName()
    {
        return '';
    }

    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'Acme\SearchBundle\Entity\Main',
            'csrf_protection' => false
        ));
    }
}

class OtherType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('id');
    }

    public function getName()
    {
        return '';
    }

    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => …
Run Code Online (Sandbox Code Playgroud)

forms symfony backbone.js fosrestbundle

5
推荐指数
1
解决办法
6253
查看次数