doujiang1913 2017-05-01 23:44
浏览 41

Symfony 2:ModelTransformer - 传递空值

I have an issue with the modelTransoformer. In my Article entity I can have Tags entity and due to the fact that I can have many tags for one entity I added a js plugin to add multiple tags. In order to pass them through I use the addModelTransformer to the field "tags".

However if I don't pass a Tag then It just creates an empty one. So I added a logic to check the length of the string for each string but I got an error saying:

The property "tags" in class "AppBundle\Entity\Article" can be defined with the methods "addTag()", "removeTag()" but the new value must be an array or an instance of \Traversable, "NULL" given.

ArticleType:

 $builder->get('tags')
            ->addModelTransformer(new CallbackTransformer
            (
                function($tags)
                {
                    $recentTags = array();

                    foreach($tags as $tag)
                    {
                        array_push($recentTags, $tag->getName());
                    }

                    return implode(',', $recentTags);
                },
                function($tagsAsString)
                {
                    $tags = explode(',', $tagsAsString);

                    $tagsAsEntities = array();

                    foreach($tags as $tag)
                    {
                        if(strlen($tag) > 2)
                        {
                            $tag = $this->entityManager->getRepository('AppBundle:Tag')->getTagOrCreateTag($tag);

                            array_push($tagsAsEntities, $tag);
                        }
                    }

                    return (empty($tagsAsEntities)) ? null : $tagsAsEntities;
                }
            ));
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 基于卷积神经网络的声纹识别
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
    • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
    • ¥15 CSAPPattacklab
    • ¥15 一直显示正在等待HID—ISP
    • ¥15 Python turtle 画图
    • ¥15 stm32开发clion时遇到的编译问题