如何将对象传递到TYPO3中另一页面上的特定视图?

时间:2015-11-01 16:30:41

标签: redirect view typo3

我有一个简单的控制器,有两个动作:

  1. listAction - 显示我的对象列表
  2. showAction - 显示对象的详细信息页面
  3. 我正在使用我的插件的flexform来定义详细信息页面,并可以通过我的控制器中的设置数组访问它。标准视图(列表视图)显示我的所有对象以及指向详细信息页面的链接。此链接将由此流体链接操作生成:

    <f:link.action action="show" arguments="{example: example}" pageUid="{pageId}">details</f:link.action>
    

    生成的链接如下所示:

    <a href="index.php?id=38&amp;tx_example_p1%5Bexample%5D=5&amp;tx_example_p1%5Baction%5D=show&amp;tx_example_p1%5Bcontroller%5D=Example&amp;cHash=89353bbb46f26f41969f02800c5ae530">details</a>
    

    我认为没问题,重定向到正确的详细信息页面也有效,但似乎 show view 没有显示,因为它不会被渲染。我的showAction和我的Show.html看起来如下:

    Show.html

    <f:layout name="Default" />
    <f:section name="main">
        <h1>Detail page</h1>
        <f:debug>{example}</f:debug>
    </f:section>
    

    的showAction:

    /**
     * Shows the details page
     *
     * @param \Fox\Example\Domain\Model\Example $example
     * @return void
     */
    public function showAction(\Fox\Example\Domain\Model\Example $example) {
    
        $this->view->assign('example', $example);
    
    }
    

    所以似乎流体链接动作viewhelper的动作将被忽略。当我从上面的链接操作中删除 pageUid =&#34; {pageId}&#34; 时,我可以看到显示视图,但之后我将不会重定向到正确的详细信息页面。< / p>

    我做错了什么?

    更新

    好的,当我将前端插件包含在详细信息页面时,它正在工作。有没有办法放弃双重包含?

1 个答案:

答案 0 :(得分:1)

  

好的,当我将前端插件包含在详细信息页面时,它正在工作。有没有办法放弃双重包含?

不,它应该像这样工作 - 如果应该在那里呈现,则必须在页面上存在插件。这种存在可以是间接的:

  • 您可以引用该插件(使用“包含记录”类型的记录,或扩展中的某些参考机制)。
  • 您可以使用TypoScript包含它(如果它应该经常使用) 在许多页面上。)

无论如何,如果没有特定的理由在页面树中为细节和列表视图设置单独的页面,只需使用相同的插件将它们放在一个页面上。