将 Viewbag 变量从主题设置传递给组件

Passing Viewbag variable to Component from Theme settings

在 Octobercms 主题设置上,我使用了一个 yaml 文件:

product_count:
    label: Number
    type: number
    span: left
    tab: Index
    default: 3

在 index.htm 页面上,我使用别名 featuredProducts

的部分 featuredProducts 组件

在组件 featuredProducts viewBag 上我使用这个变量:

perPage = "{{ product_count }}"

我尝试将主题设置 yaml 文件中的变量 product_count 传递给组件 viewBag,但没有成功。知道怎么做吗?

您需要使用组件的 property 功能和 onRender() 方法。

Page's markup section

{% component 'featuredProducts' perPage=this.theme.product_count %}

Component's onRender() method: make sure to use onRender() method as props will be available there.

public function onRender() {
    // with default value of 3, if theme value is not already set
    $perPage = $this->property('perPage', 3); 

    // now use $perPage to fetch records
    $this->page['items'] = SomeModel::limit($perPage)->get();

    // items will be available in markup for use
}

如有疑问请评论。