【问题标题】:ExpressionEngine no_results not workingExpressionEngine no_results 不工作
【发布时间】:2012-10-29 10:29:53
【问题描述】:

您好,我有以下代码:

<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 语句不起作用之外,这很好用。它永远不会得到输出。有人知道为什么吗?

【问题讨论】:

  • 两个循环是否显示在同一页面上,没有其他 entry_id 或 url_title 段?
  • 您是否偶然在模板中使用了 Stash 和“模板部分”方法? no_results 在这种情况下无法按预期工作。如果您是这种情况,那么this thread 可能会有所帮助。
  • 是的,我正在使用存储。抱歉,我没有意识到这是问题所在,否则我会提到它
  • 我不确定是不是现在才看。我有一些使用模板部分方法的网站,no_results 标签似乎可以很好地重定向到 404 模板,尽管我可以发誓我已经看到它 not 工作过去。您使用的是哪个版本的 Stash?
  • 我在上面的评论中链接到的线程已经过时了。我发现让no_results 与 Stash 一起使用只是使用测试版和no_results_prefix 的问题(请参阅下面的答案)。

标签: php codeigniter expressionengine


【解决方案1】:

你必须添加

require_entry="yes"

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

在此处查看文档http://expressionengine.com/user_guide/modules/channel/channel_entries.html#require-entry

【讨论】:

  • 那还是不行。我已经更新了问题中的代码以反映
【解决方案2】:

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

在此处https://github.com/croxton/Stash/tree/dev 下载测试版 Stash(当前为 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}

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2012-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多