Builder Plugin 通过 partial 设置标识符值
Builder Plugin set identifier value through partial
我正在尝试使用通过“记录详细信息”组件使用构建器插件设置的输出数据,运行遇到一些问题。
在我创建的插件 Schools 中,我有讲师(设置为与我单独创建的讲师插件的关系)。可能有多个讲师,因此他们以数组的形式存储在数据库中。像这样:
[{"instructor":"69"},{"instructor":"79"},{"instructor":"80"},{"instructor":"96"}]
数字代表讲师的行号table
在我的 CMS 中,我可以将所有学校信息很好地提取到部分信息(构建器详细信息)中,并且可以提取教师数组,但我正在努力将此数组传递过来以查找 ID 并获取导师信息。我现在的想法是像这样将它发送到另一个部分:
{% "school/instructor" insProfile = instructorID %}
部分 school/instructor 可以很好地获取 ID。我已经包含了 Builder Details 组件并使用以下内容进行设置:
Alias: builderDetails
ModelClass: Instructors Plugin
Identifier value: insProfile
Key Column: id
Display Column: member_name
我收到未找到记录的结果。我对如何设置标识符值以匹配我通过部分传递的值感到困惑。我在 {% set record = ... %} 为 运行 之前尝试了 {% set identifierValue = insProfile %},但这也没有用。
我无法使用 :slug,因为它已经在生成学校页面所需的内容。在一个 TLDR 中,我似乎最终想通过另一个部分和不同的标签来复制这个功能。
10 月还在学习,非常感谢您的帮助。
我认为原来的 post 有点冗长,最终我想做的是将一个变量传递到一个组件中。如:
{% component 'builderDetails' identifierValue=dynamicVar %}
这似乎不起作用,因为构建器详细信息组件在页面加载中生成的内容太多,无法获取变量更改。
根据 OctoberCMS 文档,对我来说最好的解决方案是创建我自己的组件,该组件将在使用 onRender() 函数处理页面之前接受变量。
public function onRender()
{
// This code will be executed before the default component
// markup is rendered on the page or layout.
$this->profileID = $this->property('insProfile');
$this->ins = $this->getUserInfo($this->profileID);
}
这让我可以将我的组件放在一个部分中,并使用变量 'insProfile' 请求部分。该组件将在 page/plugin 生成并使用该变量而不是默认变量之前获取 属性 insProfile。
然后我设置了另一个函数来查询所需的正确用户信息 (getUserInfo)
如果构建器插件组件能够以我不必这样做的方式更新,那就太好了,因为构建器插件开箱即用。
张贴这个以防其他人遇到这个问题并且不确定where/how将部分变量传递到组件中。
我正在尝试使用通过“记录详细信息”组件使用构建器插件设置的输出数据,运行遇到一些问题。
在我创建的插件 Schools 中,我有讲师(设置为与我单独创建的讲师插件的关系)。可能有多个讲师,因此他们以数组的形式存储在数据库中。像这样:
[{"instructor":"69"},{"instructor":"79"},{"instructor":"80"},{"instructor":"96"}]
数字代表讲师的行号table
在我的 CMS 中,我可以将所有学校信息很好地提取到部分信息(构建器详细信息)中,并且可以提取教师数组,但我正在努力将此数组传递过来以查找 ID 并获取导师信息。我现在的想法是像这样将它发送到另一个部分:
{% "school/instructor" insProfile = instructorID %}
部分 school/instructor 可以很好地获取 ID。我已经包含了 Builder Details 组件并使用以下内容进行设置:
Alias: builderDetails
ModelClass: Instructors Plugin
Identifier value: insProfile
Key Column: id
Display Column: member_name
我收到未找到记录的结果。我对如何设置标识符值以匹配我通过部分传递的值感到困惑。我在 {% set record = ... %} 为 运行 之前尝试了 {% set identifierValue = insProfile %},但这也没有用。
我无法使用 :slug,因为它已经在生成学校页面所需的内容。在一个 TLDR 中,我似乎最终想通过另一个部分和不同的标签来复制这个功能。
10 月还在学习,非常感谢您的帮助。
我认为原来的 post 有点冗长,最终我想做的是将一个变量传递到一个组件中。如:
{% component 'builderDetails' identifierValue=dynamicVar %}
这似乎不起作用,因为构建器详细信息组件在页面加载中生成的内容太多,无法获取变量更改。
根据 OctoberCMS 文档,对我来说最好的解决方案是创建我自己的组件,该组件将在使用 onRender() 函数处理页面之前接受变量。
public function onRender()
{
// This code will be executed before the default component
// markup is rendered on the page or layout.
$this->profileID = $this->property('insProfile');
$this->ins = $this->getUserInfo($this->profileID);
}
这让我可以将我的组件放在一个部分中,并使用变量 'insProfile' 请求部分。该组件将在 page/plugin 生成并使用该变量而不是默认变量之前获取 属性 insProfile。
然后我设置了另一个函数来查询所需的正确用户信息 (getUserInfo)
如果构建器插件组件能够以我不必这样做的方式更新,那就太好了,因为构建器插件开箱即用。
张贴这个以防其他人遇到这个问题并且不确定where/how将部分变量传递到组件中。