Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates 类型3在流体模板处获取类别uid(系统类别)_Templates_Typo3_Categories_Typoscript_Fluid - Fatal编程技术网

Templates 类型3在流体模板处获取类别uid(系统类别)

Templates 类型3在流体模板处获取类别uid(系统类别),templates,typo3,categories,typoscript,fluid,Templates,Typo3,Categories,Typoscript,Fluid,我尝试在流体模板中以class=“category.uid”的形式显示类别uid或名称 如果我尝试{data}我会看到这样的输出:categories=>'1'(1个字符) 但是如何将类别uid或-name写入我的FLUID/HTML,如下所示: <div id="container" class="{data.nav_title}"> <!-- I need the categories --> <div id="container" class="{categ

我尝试在流体模板中以
class=“category.uid”
的形式显示类别uid或名称

如果我尝试
{data}
我会看到这样的输出:
categories=>'1'(1个字符)

但是如何将类别uid或-name写入我的FLUID/HTML,如下所示:

<div id="container" class="{data.nav_title}">
<!-- I need the categories --> 
<div id="container" class="{categories.uid}">

谢谢你的帮助

编辑:一些截图 信息在表
sys\u category
title、uid、pid中


  • `{data}

    • 很抱歉,我没有足够的声誉发表评论

      什么是
      {data}

      这是你从控制器那里得到的东西吗

      $data = $this->configurationManager->getContentObject()->data;
      $this->view->assign('data', $data);
      

      如果是这样,那么您需要在控制器中执行一些额外的处理,因为
      $data
      是一个关联数组,而不是一个具有关系注入的对象/模型。

      同样的问题也在讨论中(参见11:30-12:31)


      因此,没有用于此的viewhelper。您必须向Flux注册ContentController。

      我在这里使用了解决方案的一个变体:

      打字稿

      lib.categories = CONTENT
      lib.categories {
          table = sys_category
          select {
              pidInList = root
              selectFields = sys_category.uid
              join = sys_category_record_mm on sys_category_record_mm.uid_local = sys_category.uid
              where.field = recordUid
              where.wrap = sys_category_record_mm.uid_foreign=|
          }
          renderObj = COA
          renderObj {
              1 = TEXT
              1 {
                  field = uid
                  stdWrap.noTrimWrap = | cat-||
              }
          }
      }
      
      流体模板

      <f:cObject typoscriptObjectPath="lib.categories" data="{recordUid: data.uid}" />
      
      
      
      什么是{categories}?它是阵列还是对象存储?它是否正确映射到您的域模型中?请提供更多信息。键入3总体类别(=表sys\u category中的系统记录),请参阅我的
      编辑
      。我现在看到的屏幕截图。我还没有使用系统类别,但很可能您应该通过
      f:for
      ViewHelper对它们进行迭代,然后您可以获取idOk,谢谢。我明白了,
      data
      只得到一个bool变量(1或0)。对于
      f:for
      ViewHelper,我只获取uid,而不获取标题。所以这还不够。我会找到另一种方法让我的类进入模板。谢谢,我已经为fluid:template创建了一个功能请求:我将从
      {data}
      获取,请参见上面的屏幕截图。好的,我明白了。它看起来像是表
      pages
      中的页面记录。在何处将变量
      {data}
      指定给流体模板?您已经在模板控制器
      $this->view->assign('data',$GLOBALS['TSFE']->页面)中正确地完成了类似的操作类别=>'1'
      不是类别的uid,而是TYPO3 CMS内部使用的引用计数。如果您尝试添加另一个类别,则会看到此变量更改为
      categories=>'2'
      这是可行的,但返回的类别是字符串,因此必须在打字脚本中呈现,而不是在流体中的for标记中呈现。还要注意,类别条目必须位于根元素上,而不是页面上。还有一个节省时间的提示:当
      [SYS][sqlDebug]
      设置为2时,不会显示生成的SQL查询。我认为,编写自定义ViewHelper是该任务的更好解决方案。看见