在 October CMS 中传递多个阵列
Pass on multiple arrays in October CMS
我在 10 月份的 CMS 中有一个这样的列表:
<ul>
<li {% if this.page.id=='some-id' %} class = "active" {% endif %}>
<a href="{{'dir/page' | page}}">Item 1</a>
</li>
<li {% if this.page.id=='some-id' %} class = "active" {% endif %}>
<a href="{{'dir/page' | page}}">Item 2</a>
</li>
<li {% if this.page.id=='some-id' %} class = "active" {% endif %}>
<a href="{{'dir/page' | page}}">Item 3</a>
</li>
</ul>
但是,如您所见,有很多重复项,所以我决定创建数组变量。我可以传递单个数组变量,但我不确定如何传递多个数组,所以我的代码看起来像这样:
==
function onStart(){
$this['pageData']=[
'data' => [
'item' => ['Item 1','Item 2','Item 3'],
'id' => ['pageid1','pageid2','pageid3'],
'link' => ['dir/page1','dir/page2','dir/page3']
]
];
}
==
<ul>
{% for items in pageData %}
<li {% if this.page.id == items.data.id %} class="active" {% endif %}>
<a href="{{items.data.link | Page}}">{{items.data.item}}</a>
</li>
{% endfor %}
</ul>
我知道这段代码是错误的,但这是我的想法。我可以检索一个对象数组,如果我写:
{% for items in pageData.data.item %}
<li>{{items}}</li>
{% endfor %}
但这当然只给了我 'item' 对象内的项目列表。我希望我解释得很好。如果我可以提供更多信息来解决此问题,请告诉我。
可以这样写
==
function onStart(){
$this['records'] = [
[
'id' => 'pageid1',
'item' => 'Item 1',
'link' => 'dir/page1'
],
[
'id' => 'pageid2',
'item' => 'Item 2',
'link' => 'dir/page2'
],
[
'id' => 'pageid3',
'item' => 'Item 3',
'link' => 'dir/page3'
],
];
}
====
<ul>
{% for record in records %}
<li {% if this.page.id == record.id %} class="active" {% endif %}>
<a href="{{record.link | page}}">{{record.item}}</a>
</li>
{% endfor %}
</ul>
这会起作用
如有疑问请评论。
我在 10 月份的 CMS 中有一个这样的列表:
<ul>
<li {% if this.page.id=='some-id' %} class = "active" {% endif %}>
<a href="{{'dir/page' | page}}">Item 1</a>
</li>
<li {% if this.page.id=='some-id' %} class = "active" {% endif %}>
<a href="{{'dir/page' | page}}">Item 2</a>
</li>
<li {% if this.page.id=='some-id' %} class = "active" {% endif %}>
<a href="{{'dir/page' | page}}">Item 3</a>
</li>
</ul>
但是,如您所见,有很多重复项,所以我决定创建数组变量。我可以传递单个数组变量,但我不确定如何传递多个数组,所以我的代码看起来像这样:
==
function onStart(){
$this['pageData']=[
'data' => [
'item' => ['Item 1','Item 2','Item 3'],
'id' => ['pageid1','pageid2','pageid3'],
'link' => ['dir/page1','dir/page2','dir/page3']
]
];
}
==
<ul>
{% for items in pageData %}
<li {% if this.page.id == items.data.id %} class="active" {% endif %}>
<a href="{{items.data.link | Page}}">{{items.data.item}}</a>
</li>
{% endfor %}
</ul>
我知道这段代码是错误的,但这是我的想法。我可以检索一个对象数组,如果我写:
{% for items in pageData.data.item %}
<li>{{items}}</li>
{% endfor %}
但这当然只给了我 'item' 对象内的项目列表。我希望我解释得很好。如果我可以提供更多信息来解决此问题,请告诉我。
可以这样写
==
function onStart(){
$this['records'] = [
[
'id' => 'pageid1',
'item' => 'Item 1',
'link' => 'dir/page1'
],
[
'id' => 'pageid2',
'item' => 'Item 2',
'link' => 'dir/page2'
],
[
'id' => 'pageid3',
'item' => 'Item 3',
'link' => 'dir/page3'
],
];
}
====
<ul>
{% for record in records %}
<li {% if this.page.id == record.id %} class="active" {% endif %}>
<a href="{{record.link | page}}">{{record.item}}</a>
</li>
{% endfor %}
</ul>
这会起作用
如有疑问请评论。