小编Tom*_*ski的帖子

JMS Serializer没有序列化子类

我有JMS序列化程序的问题.当我使用组时,JMS不会序列化我的子类,但是当我不使用组时,一切都没问题.我做错了什么?

    $context = SerializationContext::create()->enableMaxDepthChecks();
    $context->setGroups(['clientapi']);

    $contextWithoutGroup = SerializationContext::create()->enableMaxDepthChecks();

    /** @var Serializer $serializer */
    $serializer = $this->container->get('jms_serializer');
    $dataClientApi = $serializer->serialize($documentBundle->getFolderDocumentsForClientApi(
        $this->getUserFromParam($params), $folder, $categories, $tags
    ), 'json', $context);

    $dataWithout = $serializer->serialize($documentBundle->getFolderDocumentsForClientApi(
        $this->getUserFromParam($params), $folder, $categories, $tags
    ), 'json', $$contextWithoutGroup);
Run Code Online (Sandbox Code Playgroud)

给:

$dataClientApi = '{"0":{"author":{}}}';
$dataWithout = '{"0":{"author":{id: 2}}}';
Run Code Online (Sandbox Code Playgroud)

那是我的课程.家长:

/**
 * Document
 *
 * @ORM\Table(name="documents")
 * @ORM\Entity(repositoryClass="AppBundle\Entity\DocumentRepository")
 * @ORM\EntityListeners({"DocumentListener"})
 * @JMS\ExclusionPolicy("all")
 * @JMS\AccessorOrder("custom", custom = {"id", "folderId", "title"})
 */
class Document implements ResourceInterface
{

    use Traits\SortableTrait;
    use Traits\TimestampableTrait;

    /**
     * @var integer
     *
     * …
Run Code Online (Sandbox Code Playgroud)

php symfony jmsserializerbundle jms-serializer symfony-2.8

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

Zend Navigation,ACL和Partials

我有使用Acl和角色的Zend Navigation对象:

echo $this->navigation()->menu('navigation')
->setAcl($this->acl)
->setRole(($this->user ? 'user' : 'guest'))
->render();
Run Code Online (Sandbox Code Playgroud)

和它的工作完美(隐藏一些页面)

当我使用自定义部分:

echo $this->navigation()->menu('navigation')
->setAcl($this->acl)
->setRole(($this->user ? 'user' : 'guest'))
->setPartial('partial/twitterBootstrapNavHeadUl.phtml')
->render();
Run Code Online (Sandbox Code Playgroud)

这部分内容

foreach ($this->container as $page)
    echo $this->navigation()->menu()->htmlify($page);
Run Code Online (Sandbox Code Playgroud)

它传递给所有页面的部分$ this->容器(通过acl设置为不可用)

也许我应该将acl等传递给partial

foreach ($this->container as $page)
    echo $this->navigation()->menu()->setAcl($this->acl)->setRole(($this->user ? 'user' : 'guest'))->htmlify($page); // ?????????????????????
Run Code Online (Sandbox Code Playgroud)

但是如何实现呢?

有什么我应该做/知道的吗?

zend-navigation zend-framework2

2
推荐指数
1
解决办法
1869
查看次数