如何解决在October CMS中传递多个阵列
我在十月的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>
这将起作用
如有任何疑问,请发表评论。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。