Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

SmartyでSmarty too many shorthand attributesというエラーが出たときの原因と対処

More than 5 years have passed since last update.

日本語のページがなかったので役に立つたたないはともかく残しておきます。

元々のPHPのコード自体もなかなかに複雑だったけど、省略。

Smartyのテンプレートの該当部分だけ抜粋。
エラーが出たときのコード

{$num = $items|@count}
    {if $num > 0}
        {foreach item=item from=$items}
            {section name=j start=0 loop $num - 1}
                {assign var=member value=member_|cat:$smarty.section.j.iteration}
                    // something working codes
            {/section}

            {section name=k start=2 loop $num - 1}
                 {assign var=pages value=pages|cat:$smarty.section.k.iteration}
                 // pagenatation codes
            {/section}
         {/foreach}
    {/if}

結論から言ってしまうとただのシンタックスエラーです。
原因はここ

{section name=j start=0 loop $num - 1}
{section name=k start=2 loop $num - 1}

loopに=を入れ忘れたため、startの引数としてloop, $num - 1っていうstartで期待される引数の数(1つ) を超えちゃってるよって怒られてます。

コードの重複になりますが解決編

{$num = $items|@count}
    {if $num > 0}
        {foreach item=item from=$items}
            {section name=j start=0 loop = $num - 1}
                {assign var=$member value=member_|cat:$smarty.section.j.iteration}
                    // something working codes
            {/section}

            {section name=k start=2 loop = $num - 1}
                 {assign var=$pages value=pages|cat:$smarty.section.k.iteration}
                 // pagenatation codes
            {/section}
         {/foreach}
    {/if}
nagai_akinari
その辺の独立(笑) プログラマーやってます。 お仕事ください?
http://aochd.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away