从 OctoberCMS 中的代码渲染组件部分
Rendering a component partial from code in OctoberCMS
根据OctoberCMS文档的this section,我应该可以设置这样的目录结构:
pluginname
├── components
│ ├── resumefilter
│ │ ├── default.htm
│ │ └── my-partial.htm
│ ├── ResumeFilter.php
│ ├── resumelist
│ │ └── default.htm
│ └── ResumeList.php
然后,我应该可以像这样在 ResumeFilter.php
中放置一个函数:
function onFilterResumes()
{
return ['#someDiv' => $this->renderPartial('my-partial.htm')];
}
最后,default.htm
标记中的一个按钮:
<button
class="btn btn-success"
data-request="onFilterResumes">
Filter
</button>
问题是,当我按下按钮时,它显示 The partial 'my-partial.htm' is not found
我已经用完整路径试过了,但似乎没有任何区别。
October 似乎在主题部分目录中寻找部分部分,因为如果我把它放在那里它会加载。但是,在名称前加上 resumefilter:
前缀以尝试让它在组件中查找是行不通的,文档似乎建议它应该在没有前缀的情况下在组件中查找。
我在 2 年前找到了 this bug on github,但看起来它已修复。
如果你想呈现部分组件,请在你的部分名称前添加 @
。所以你的代码应该是这样的,
function onFilterResumes()
{
return ['#someDiv' => $this->renderPartial('@my-partial.htm')];
}
如果您想覆盖主题中的部分内容,请将部分内容放在以下树中,
themes/theme-name/partials/component-name/my-partial.htm
根据OctoberCMS文档的this section,我应该可以设置这样的目录结构:
pluginname
├── components
│ ├── resumefilter
│ │ ├── default.htm
│ │ └── my-partial.htm
│ ├── ResumeFilter.php
│ ├── resumelist
│ │ └── default.htm
│ └── ResumeList.php
然后,我应该可以像这样在 ResumeFilter.php
中放置一个函数:
function onFilterResumes()
{
return ['#someDiv' => $this->renderPartial('my-partial.htm')];
}
最后,default.htm
标记中的一个按钮:
<button
class="btn btn-success"
data-request="onFilterResumes">
Filter
</button>
问题是,当我按下按钮时,它显示 The partial 'my-partial.htm' is not found
我已经用完整路径试过了,但似乎没有任何区别。
October 似乎在主题部分目录中寻找部分部分,因为如果我把它放在那里它会加载。但是,在名称前加上 resumefilter:
前缀以尝试让它在组件中查找是行不通的,文档似乎建议它应该在没有前缀的情况下在组件中查找。
我在 2 年前找到了 this bug on github,但看起来它已修复。
如果你想呈现部分组件,请在你的部分名称前添加 @
。所以你的代码应该是这样的,
function onFilterResumes()
{
return ['#someDiv' => $this->renderPartial('@my-partial.htm')];
}
如果您想覆盖主题中的部分内容,请将部分内容放在以下树中,
themes/theme-name/partials/component-name/my-partial.htm