【问题标题】:How do i display subcategories in octobercms如何在 octobercms 中显示子类别
【发布时间】:2019-02-21 19:57:03
【问题描述】:

我在 octobercms 上已经有一段时间了。我不知道我是否以正确的方式去做。我已经用嵌套树设置了我的类别和子类别。在 Category 模型中,我使用下面的范围仅在页面上呈现父类别。

public function scopeCategory($query)
{
    return $query->where('parent_id', 0);

一切正常。我通过 slug 将其连接到记录详细信息页面,该页面仅将页面上的父类别显示为标题。

{% if record %}
<h4>{{ record.cat_title }}</h4>
{% else %}
{{ notFoundMessage }}
 {% endif %}

现在我想在详细信息页面上呈现子类别,因此当用户单击列表页面中的类别(如农业)时,详细信息页面会显示农业下的所有子类别,然后用户可以进一步导航到产品。不确定如何实现子类别部分。我已经尝试了一堆代码,但它什么也没做。有什么解决办法吗?

附加信息:我已经使用范围仅获取列表页面上的父类别

【问题讨论】:

    标签: laravel twig octobercms


    【解决方案1】:

    我假设你已经使用了 nested-tree [ https://octobercms.com/docs/database/traits#nested-tree ]。

    首先我们将父 parentCats 传递给我们的视图/页面

    use HardikSatasiya\SoTest\Models\Categories;
    
    function onStart() {
        $this['parentCats'] = Categories::getAllRoot(); 
    }
    

    在页面/视图中显示category 及其sub-categories 直到N level 我们可以使用这个render_cats macro

    {% import _self as thisPage %}
    
    {% macro render_cats(items) %}    
        {% import _self as thisPage %}
    
        {% for item in items %}              
            <li>{{ item.level }} {{ item.title }}
                {% if item.childcount > 0 %}                     
                    <ul>
                        {{ thisPage.render_cats(item.children) }}          
                    </ul>
                {% endif %}
            </li>
        {% endfor %}
    {% endmacro %}
    
    <ul>
        {{ thisPage.render_cats(parentCats) }}
        <!-- we are passing parent cats ^ here -->
    </ul>
    

    输出

    <ul>
       <li>
          0 Parent Cat 1
     <!-- ^ this is level -->
          <ul>
             <li>
                1 Sub cat 1
                <ul>
                   <li>2 Sub Sub cat 1
                   </li>
                   <li>2 Sub Sub cat 3
                   </li>
                   <li>2 Sub Sub cat 3
                   </li>
                </ul>
             </li>
             <li>1 Sub cat 2
             </li>
          </ul>
       </li>
       <li>
          0 Parent Cat 2
          <ul>
             <li>1 Sub cat 3
             </li>
             <li>1 Sub cat 4
             </li>
          </ul>
       </li>
    </ul>
    

    如有疑问请评论

    【讨论】:

    • 我比以前更困惑...我想要做的是,如果用户点击说农业类别,农业下的所有子类别都会显示一个不同的页面,然后用户可以从那里导航产品页面。
    • 嗯,当您单击父类别时,您可能忘记在下一页添加您需要的详细信息,我将根据您的新 cmets 更新我的答案。请添加下一页详细信息以便更好地理解
    猜你喜欢
    • 1970-01-01
    • 2020-10-28
    • 2018-06-17
    • 2019-03-31
    • 1970-01-01
    • 2014-11-24
    • 2019-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多