【问题标题】:Sitecore powershell console not displaying state fieldSitecore powershell 控制台不显示状态字段
【发布时间】:2015-04-04 22:52:15
【问题描述】:

我有一个带有字段名称状态的站点核心模板。州字段有一个下拉链接字段,该字段显示“国家/地区”节点中的国家/地区。

我正在尝试编写一个查询来显示所有具有给定状态的课程。

但是当我运行下面的查询时,它显示“Sitecore.Data.Items.ItemState”。

gci -recurse | format-table state

知道为什么它不显示状态 GUID 值吗?

【问题讨论】:

  • 我们需要更多信息来帮助您。这是网络上的网站吗?目前,我不知道你想做什么。请举例说明。
  • 很有可能说state 没有一个好的ToString() 方法。如果你只做gci -recurse | select state 会发生什么?
  • 如何更改字段名称。我认为 Sitecore 在全球范围内使用“State”这个名称。尝试更新名称,如“Country State”而不是“State”,然后再次尝试代码。 gci -recurse | format-table "Country State"

标签: powershell sitecore sitecore7 sitecore7.2


【解决方案1】:

我知道这早就应该解决了,您可能早就处理过了,但是为了将来遇到它的人着想,让我解释一下原因和方法。

State 返回 Sitecore.Data.Items.ItemState 文本的原因是 Sitecore 项目在 Item 对象上包含名为 State 的属性。

Sitecore PowerShell Extensions 将额外的动态属性附加到公开您的项目字段的对象上。然而,这些不能与现有的项目属性发生冲突,这就是这里的情况。为了避免冲突,SPE 将检测到它并在动态属性前加上下划线。在您的情况下,可以为您提供预期结果的一种衬垫是:

gci -recurse | format-table _state

或者,如果您仍想将属性显示为 State 而不是 _state,您可以使用以下语法:

gci master:\content  | format-table @{Name="State"; Expression={$_._state } }

希望这仍然对某人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-27
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    • 2021-08-27
    相关资源
    最近更新 更多