首页 文章

从OctoberCMS中的代码渲染组件部分

提问于
浏览
2

根据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

我已经尝试了完整的路径,但它似乎没有任何区别 .

十月似乎在寻找部分主题partials目录,因为如果我把它放在那里它会加载 . 但是,在名称前加上 resumefilter: 以尝试让它在组件中查找是行不通的,并且文档似乎建议它应该在没有前缀的组件中查找 .

我从2年前找到了this bug on github但看起来它已修复了 .

1 回答

  • 5

    如果要将组件部分渲染,请在部分名称前添加 @ . 所以你的代码应该是这样的,

    function onFilterResumes()
    {
        return ['#someDiv' => $this->renderPartial('@my-partial.htm')];
    }
    

    如果要覆盖主题中的partial,请将partial放在以下树中,

    themes/theme-name/partials/component-name/my-partial.htm

相关问题