当前位置: 首页 > 素人随笔

ThinkPHP5.1模板标签volist循环第二次调用出现Illegal string offset 'cate_id'

作者:admin发布时间:2023-01-31 22:48:10阅读:341

最近在用ThinkPHP5搭建一个新的站点,在写到网站发布文章时的选择分类时,由于我觉得网站的导航栏已经调用过所有的栏目了,就想着使用相同的变量menu,但是第二次调用时出现了Illegal string offset 'cate_id'这样的错误提示。

image.png

我反复查找也不知道的问题究竟出现在哪里,因为之前也有类似的第二次调用,但是是正常使用的。后来终于让我找到了问题所在。

我的导航栏目是这样调用的:

<ul class="menu">
    {volist name="menu" id="menu"}
    <li>
        <a href="{:url('index/lists',array('path'=>$menu.cate_path))}"{if condition="$menu.cate_id eq $nowid"} class="active"{/if}>{$menu.cate_name}</a>
    </li>
    {/volist}
</ul>

然后我第二次调用时是这样写的:

{volist name="menu" id="mycate"}
    <option value="{$mycate.cate_id}">{$mycate.cate_name}</option>
{/volist}

虽然我第二次修改了当前的循环变量,但是还是跟我第一次调用的循环变量还是有冲突的,经过第一次调用时的“当前变量”名,我终于解决了这个问题。

<ul class="menu">
    {volist name="menu" id="nav"}
    <li>
        <a href="{:url('index/lists',array('path'=>$nav.cate_path))}"{if condition="$nav.cate_id eq $nowid"} class="active"{/if}>{$nav.cate_name}</a>
    </li>
    {/volist}
</ul>