【问题标题】:Laravel nested navigationLaravel 嵌套导航
【发布时间】:2014-12-03 11:01:29
【问题描述】:

我正在为类别和子类别创建嵌套导航。我在BaseController 中有一个构造函数,它与视图共享一个变量,该变量从类别模型返回所有​​内容。

基本控制器

public function __construct() {
        $this->beforeFilter(function() {
                View::share('catnav', Category::all());
        });
}

到目前为止,我可以显示类别的名称和子类别的对象数组,如下所示:

@foreach($catnav as $cat)
<li>{{ HTML::link('/store/category/'.$cat->id, $cat->name) }}
    <ul>
       <li>{{ HTML::link('/store/category/'.$cat->id, $cat->subcategories) }}</li>
    </ul>
</li>
@endforeach

上面的输出是:

- Category Name
   - [{"id":6,"category_id":2,"name":"Electric","created_at":"2014-11-14 15:13:23","updated_at":"2014-11-14 15:13:23"},{"id":7,"category_id":2,"name":"Acoustic","created_at":"2014-11-14 15:13:26","updated_at":"2014-11-14 15:13:26"}]
- Another Category Name

问题:

  • 如何访问嵌套数组的 name 属性?
  • 这是否适用于创建子类别导航?

我已经看过Access nested array within laravel viewsNested sets laravelSub-categories display under Main categories

【问题讨论】:

    标签: php arrays laravel


    【解决方案1】:

    如果关卡数量有限,您可以添加另一个 foreach 循环

    @foreach($catnav as $cat)
        <li>{{ HTML::link('/store/category/'.$cat->id, $cat->name) }}
            <ul>
                @foreach($cat->subcategories as $subcat)
                    <li>{{ HTML::link('/store/category/'.$cat->id.'/sub/'.$subcat->id, $subcat->name) }}</li>
                @endforeach
            </ul>
        </li>
    @endforeach
    

    对于我刚刚猜测的实际 URL,但我相信您可以根据自己的需要进行调整。
    另请注意,您可能需要一个 if first 来检查它是否有子类别。如果您需要任何帮助,请告诉我。

    【讨论】:

    • 一百万感谢卢卡斯,投票并接受了答案!我没有尝试添加第二个 foreach 循环,这成功了!
    • @cchacholiades 没问题 :)
    猜你喜欢
    • 1970-01-01
    • 2019-09-17
    • 1970-01-01
    • 2020-08-01
    • 2022-06-25
    • 2020-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多