0

我的场景:

<table>
    <thead>
        <tr>
            <th>Name</th>
            <th>Email</th>
        </tr>
    </thead>
    <tbody>
        {foreach from=$users item=user}
            <tr>
                <td>{$user.name}</td>
                <td>{$user.email}</td>
            </tr>
        {foreachelse}
            There are no users....
        {/foreach}
    </tbody>
</table>

现在,当没有用户时,我的表很丑,所以我会添加:

{if $users|count > 0}
    <table>
        <thead>
            <tr>
                <th>Name</th>
                <th>Email</th>
            </tr>
        </thead>
        <tbody>
            {foreach from=$users item=user}
                <tr>
                    <td>{$user.name}</td>
                    <td>{$user.email}</td>
                </tr>
            {foreachelse}
                There are no users....
            {/foreach}
        </tbody>
    </table>
{else}
    There are no users....
{/if}

但现在我{foreachelse}的没用了。

因此,我删除了该{foreachelse} There are no users....部分并得出结论认为这{foreachelse}是无用的。

我在<table>,<ol>等中遇到的这个问题<ul>

有没有人有解决方案,所以我可以使用{foreachelse}

谢谢!

4

2 回答 2

2

您可以有一行表示没有用户,例如:

<table>
    <thead>
        <tr>
            <th>Name</th>
            <th>Email</th>
        </tr>
    </thead>
    <tbody>
        {foreach from=$users item=user}
            <tr>
                <td>{$user.name}</td>
                <td>{$user.email}</td>
            </tr>
        {foreachelse}
            <tr>
                <td colspan="2">There are no users....</td>
            </tr>
        {/foreach}
    </tbody>
</table>

但是当这不是预期的结果时,我可以理解。

有时您可能会在 foreach 中使用 div 而不是表格或列表内容。检查有关此的 smarty 文档: http ://www.smarty.net/docs/en/language.function.foreach.tpl

于 2012-10-19T10:00:38.013 回答
1

{foreachelse}from当变量中没有值时执行。这对我来说非常有用,if-else不需要条件。如果我使用你的代码,那么我会{foreachelse}这样写,

{foreachelse}
     <tr><td colspan="2" style="color:red">There are no users....</td></tr>
{/foreach}
于 2012-10-19T10:03:36.747 回答