5

嗨,我有以下代码:

<div class="row-fluid">
    <div class="span12">
        <h3>Top 10 most popular</h3>
        <ul>
            {exp:channel:entries channel="faqs" dynamic="no" limit="10"}
                <li><a href="{url_title_path='help'}">{title}</a></li>
            {/exp:channel:entries} 
        </ul>

        <h3>Answer to selected question</h3>
        {exp:channel:entries channel="faqs" dynamic="yes" require_entry="yes" limit="1"}
             {if no_results} 
                <p>Click a question above to see the answer here</p>
             {/if}
            {answer}
        {/exp:channel:entries} 
    </div>    
</div>

如您所见,我循环浏览了两次常见问题解答。第一个设置它来获取所有问题,然后如果用户点击一个问题,那么第二个循环应该开始向他们显示答案。除了第二个循环中的 no results 语句不起作用之外,这很好用。它永远不会得到输出。有谁知道为什么?

4

3 回答 3

8

你必须添加

require_entry="yes"

到你的第二个循环,以便没有结果工作。

请参阅此处的文档http://expressionengine.com/user_guide/modules/channel/channel_entries.html#require-entry

于 2012-10-29T10:34:53.710 回答
2

由于您在评论中提到您正在使用 Stash,因此以下内容应该可以no_results按预期工作。我刚刚对此进行了测试,它对我有用。

在此处下载 Stash 的测试版https://github.com/croxton/Stash/tree/dev(当前为 v2.3.5)。

请参阅GitHub 页面上关于no_results_prefix的文档。

您没有显示包装模板代码的周围 Stash 标记,但假设它是一个stash:set标记,请更新您的模板,如下所示:

{exp:stash:set name="page_content" no_results_prefix="stash"}
    <div class="row-fluid">
        <div class="span12">

            [...]

            <h3>Answer to selected question</h3>
            {exp:channel:entries channel="faqs" dynamic="yes" require_entry="yes" limit="1"}
                {!-- note prefix, which was defined in outer stash:set tag --}
                {if stash:no_results} 
                    <p>Click a question above to see the answer here</p>
                {/if}
                {answer}
            {/exp:channel:entries} 
        </div>    
    </div>
{/exp:stash:set}
于 2012-11-16T22:01:31.613 回答
0

我将此作为错误报告给 EllisLab。它绝对不能正常工作。https://support.ellislab.com/bugs/detail/21106

于 2015-09-16T13:51:54.367 回答