0

根据我有的面包屑的数量:

[trail] => Array
        (
            [crumb] => Array
                (
                    [url] => /app/system
                    [label] => System
                )

[trail] => Array
        (
            [crumb] => Array
                (
                    [0] => Array
                        (
                            [url] => /app/system
                            [label] => Sytem
                        )

                    [1] => Array
                        (
                            [url] => /app/system/edit
                            [label] => System Edit
                        )

                )

        )

在聪明的我有:

{if $trail.crumb}
<ul class="breadcrumbs">
    {foreach $trail.crumb as $crum}
        <li itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
            <a href="{$crum.url}" itemprop="url" title="{$crum.label}"><span itemprop="title">{$crum.label|truncate:20}</span></a>
        </li>
    {/foreach}
</ul>
{/if}

在第一个示例中,这显示:

致命错误:不能将字符串偏移量用作数组

有没有办法在不复制 HTML 的情况下做到这一点?

4

1 回答 1

0

想通了,没有 smarty3 就无法做到这一点。

    {if isset($trail.crumb.0)}
        {assign var="crumbs" value=$trail.crumb}
    {else}
        {assign var="crumbs" value=[$trail.crumb]}
    {/if}
    {foreach $crumbs as $crum}

Smarty 3 很棒,他们修复了 Smarty 2 中缺少的所有内容。

于 2013-02-18T15:15:52.617 回答