【问题标题】:Extracting second level menu from JSON从 JSON 中提取二级菜单
【发布时间】:2020-07-02 20:29:45
【问题描述】:

我在我的 Laravel 应用程序中使用 JSON,如下所述。我正在尝试从 JSON 中检索子级菜单,但它不起作用。

[
   {
      "pages":"Home",
      "href":""
   },
   {
      "pages":"About",
      "href":"about"
   },
   {
      "pages":"Contact",
      "href":"contact",
      "children":[
         {
            "pages":"Profile",
            "href":"profile"
         }
      ]
   }
]

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 请阅读How to create a Minimal, Reproducible Example 和How do I ask a good question 并相应地编辑您的问题。添加您尝试过的内容并解释 “不起作用” 在您的情况下的含义。发生什么了?错误?数据错误?服务器崩溃?
  • 如果您尝试在导航栏中输出菜单,请提供您的 foreach 循环代码和导航栏结构,以便我们找出问题所在
  • @HassanAzzam 这里是刀片模板代码 `` @foreach($m as $m1)
  • href; ?> pages?>
  • @endforeach 到目前为止,上面的代码正在运行,但我无法从代码中检索孩子。
  • 好的,我现在将发布关于如何遍历菜单项的答案
  • 标签: php json laravel laravel-7


    【解决方案1】:

    在@foreach 循环内,您需要检查当前菜单项是否有children,如果有,则添加第二个循环以遍历children。

    所以它看起来像这样:

     @foreach($m as $page) 
        <li> 
            <a href="{{ url($page->href) }}">
                {{ $page->pages }}
                @if(property_exists($page, 'children'))
                    <span class="dropdown__trigger header-active">▼</span>
                @endif
            </a>
    
            @if(property_exists($page, 'children'))
                <ul class="submenu">
                    @foreach($page->children as $subPage) 
                        <li> 
                            <a href="{{ url($subPage->href) }}">{{ $subPage->pages }}</a>
                        </li>
                    @endforeach
                </ul>
            @endif
        </li>
     @endforeach
    

    【讨论】:

    • 嗯,我刚刚修改了答案,请用新代码再次检查。
    • 我用@if代替@isset
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签