TYPO3 内容 select 将参数传递给 USER/USER_INT
TYPO3 CONTENT select pass Argument to USER/USER_INT
打字错误:
lib.category = CONTENT
lib.category {
table=sys_category
select {
pidInList = root
selectFields = sys_category.*
join = sys_category_record_mm ON sys_category_record_mm.uid_local = sys_category.uid
where.field = sys_category_record_mm.uid_foreign = data.uid
languageField = 0
}
renderObj = USER_INT
renderObj {
userFunc = InstantAitExt\AitContacts\GetPageCategories->testExecute
alias = TEXT
alias.value = data.uid
}
}
所以我必须将 1-x 个参数传递给 testExecute。其中一个参数应该包含给定页面的 uid。此 uid 通过
传递给 lib.category=CONTENT
<f:cObject typoscriptObjectPath="lib.category" data="{page}" />
所以data.uid
基本上是page.data.uid
如果我将 data.uid
传递给 alias.value
,参数将“data.uid”作为字符串而不是我需要的实际值。
那么如何将实际的 pageId 传递给 alias.value
此外,查询有效,但我无法 verify/debug
where.field = sys_category_record_mm.uid_foreign = data.uid
检查查询是否真的获得了正确的值(视图中的页面 ID)
非常感谢帮助
你不能调试它,因为它是一个语法错误。
属性是 where
,如果您使用 where.field
,您希望从(当前上下文的)字段设置值。等号后应为字段名称。
但是你给出一个表达式sys_category_record_mm.uid_foreign = data.uid
。那个没法评价。
你想要的是一个带有数据的表达式。此数据应被替换。
所以你要么对替换的数据(或字段)使用换行
where.data = data.uid
where.wrap = sys_category_record_mm.uid_foreign = |
等于
where.field= uid
where.wrap = sys_category_record_mm.uid_foreign = |
因为data
是当前上下文,所以您可以直接访问该字段。
或者您使用 insertData
:
where = sys_category_record_mm.uid_foreign = {data.uid}
where.insertData = 1
编辑:
如果您只想将页面 uid 提交给您可以使用的 typoscript viewhelper
<f:cObject typoscriptObjectPath="lib.category" data="{page.uid}" />
或像这样的简单数组:
<f:cObject typoscriptObjectPath="lib.category" data="{uid:page.uid}" />
虽然第二次调用不会更改上面的拼写错误(您只有一个较小的 data
数组,其中仅包含字段 uid
,而原始调用包含整个页面记录)。
对于仅具有 uid 值的 viewhelper,您必须使用 current
:
where = current
where.wrap = sys_category_record_mm.uid_foreign = |
打字错误:
lib.category = CONTENT
lib.category {
table=sys_category
select {
pidInList = root
selectFields = sys_category.*
join = sys_category_record_mm ON sys_category_record_mm.uid_local = sys_category.uid
where.field = sys_category_record_mm.uid_foreign = data.uid
languageField = 0
}
renderObj = USER_INT
renderObj {
userFunc = InstantAitExt\AitContacts\GetPageCategories->testExecute
alias = TEXT
alias.value = data.uid
}
}
所以我必须将 1-x 个参数传递给 testExecute。其中一个参数应该包含给定页面的 uid。此 uid 通过
传递给 lib.category=CONTENT<f:cObject typoscriptObjectPath="lib.category" data="{page}" />
所以data.uid
基本上是page.data.uid
如果我将 data.uid
传递给 alias.value
,参数将“data.uid”作为字符串而不是我需要的实际值。
那么如何将实际的 pageId 传递给 alias.value
此外,查询有效,但我无法 verify/debug
where.field = sys_category_record_mm.uid_foreign = data.uid
检查查询是否真的获得了正确的值(视图中的页面 ID)
非常感谢帮助
你不能调试它,因为它是一个语法错误。
属性是 where
,如果您使用 where.field
,您希望从(当前上下文的)字段设置值。等号后应为字段名称。
但是你给出一个表达式sys_category_record_mm.uid_foreign = data.uid
。那个没法评价。
你想要的是一个带有数据的表达式。此数据应被替换。
所以你要么对替换的数据(或字段)使用换行
where.data = data.uid
where.wrap = sys_category_record_mm.uid_foreign = |
等于
where.field= uid
where.wrap = sys_category_record_mm.uid_foreign = |
因为data
是当前上下文,所以您可以直接访问该字段。
或者您使用 insertData
:
where = sys_category_record_mm.uid_foreign = {data.uid}
where.insertData = 1
编辑:
如果您只想将页面 uid 提交给您可以使用的 typoscript viewhelper
<f:cObject typoscriptObjectPath="lib.category" data="{page.uid}" />
或像这样的简单数组:
<f:cObject typoscriptObjectPath="lib.category" data="{uid:page.uid}" />
虽然第二次调用不会更改上面的拼写错误(您只有一个较小的 data
数组,其中仅包含字段 uid
,而原始调用包含整个页面记录)。
对于仅具有 uid 值的 viewhelper,您必须使用 current
:
where = current
where.wrap = sys_category_record_mm.uid_foreign = |