首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Smarty显示最后4篇文章

Smarty显示最后4篇文章
EN

Stack Overflow用户
提问于 2018-08-01 16:27:19
回答 2查看 51关注 0票数 1

我使用SMARTY,当我想要显示最后4篇文章时,它会显示4篇文章,而不是最后一篇(倒数第二-倒数第二篇)。当我再添加一篇文章时,它会显示最后一篇文章(但现在不是最后一篇:D)

这是我从数据库中获取数据的SQL代码的结尾:

代码语言:javascript
复制
FROM cms_article AS a 
JOIN cms_detail_of_page AS d ON d.idOfDetailOfPage = a.idOfDetailOfPage 
JOIN cms_page AS p ON p.idOfPage = d.idOfPage
WHERE a.idOfLanguage = '" . $this->language . "' AND isArticleVisible = 1
ORDER BY publicationDateOfArticle DESC, timestampOfArticle DESC 
LIMIT 5"

这是我的PHP Smarty代码:

代码语言:javascript
复制
<div class="items">
{foreach $recentArticles as $article name=a}
    {if !$smarty.foreach.a.first}
    <div class="col50">
        <div class="item">
            <a href="/{$language}/{$article.url}/"> <img src="uploads/photogallery/preserve.php?filename={$article.image}" alt="{$article.headline}" style="width:560px; height:300px;">
                <span class="date">{$article.timestamp|date_format:"%d/%m/%Y"}</span>
                <span class="box">
                    <span class="category">{$article.parent}</span>
                    <h3>{$article.headline}</h3>
                    <p>{$article.preview|truncate:100}</p>
                </span>
            </a>
        </div>
    </div>
    {/if}
{/foreach}
    <div class="clear"></div>
</div>

我认为问题出在这个问题上:

代码语言:javascript
复制
 {if !$smarty.foreach.a.first}

但当我删除!时,它显示了我唯一的最后一篇文章(不是最后4篇文章)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-01 16:42:45

您正在从DB获取5个项目,而您的IF语句将跳过第一个结果。将查询更改为LIMIT 4或更改foreach

代码语言:javascript
复制
{foreach $recentArticles as $article name=a}
    {if $smarty.foreach.a.iteration < 5}
        <div class="col50">
            <div class="item">
                <a href="/{$language}/{$article.url}/"> <img src="uploads/photogallery/preserve.php?filename={$article.image}" alt="{$article.headline}" style="width:560px; height:300px;">
                    <span class="date">{$article.timestamp|date_format:"%d/%m/%Y"}</span>
                    <span class="box">
                        <span class="category">{$article.parent}</span>
                        <h3>{$article.headline}</h3>
                        <p>{$article.preview|truncate:100}</p>
                    </span>
                </a>
            </div>
        </div>
    {/if}
{/foreach}
票数 3
EN

Stack Overflow用户

发布于 2018-08-01 16:31:38

你的文章是以相反的顺序排序的,所以第一篇实际上是最后一篇。{if !$smarty.foreach.a.first}的意思是“如果它是第一个,就不显示它”,只需删除它和{/if}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51628664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档