我正在尝试用laravel动态显示菜单。
我有两个表,一个是主类,另一个是子类
下面是分类表的结构
----------------------------------
| id | title | slug | type |
| 1 | title1 | slug1 | Android |
| 2 | title2 | slug2 | Android |
| 3 | title3 | slug3 | Android |
| 4 | title4 | slug4 | Ubuntu |
| 5 | title5 | slug5 | Ubuntu |
----------------------------------
子类别结构
-----------------------------------------------
| id | title | slug | category_of|
| 1 | title1 | slug1 | 1 |
| 2 | title2 | slug2 | 1 |
| 3 | title3 | slug3 | 1 |
| 4 | title4 | slug4 | 2 |
| 5 | title5 | slug5 | 1 |
-----------------------------------------------
这是我尝试过的
<?php
$category = App\Models\Menu::where('categories.type', 'Android')
->select('categories.*', 'sub_category.slug as sub_slug', 'sub_category.title')
->join('sub_category', 'sub_category.category_of', '=', 'categories.id')
->get();
?>
@foreach ($category as $value)
<li class="inner-dropdown-item">
<p>
<a href="{{ Config::get('constants.url.BASE_URL') }}category/{{$value->slug}}/">{{ucwords(str_replace('-', ' ', $value->slug))}}</a>
</p>
</li>
<li class="inner-dropdown-item">
<a href="{{ Config::get('constants.url.BASE_URL') }}category/{{$value->sub_slug}}/{{$value->sub_slug}}">{{ucwords(str_replace('-', ' ', $value->sub_slug))}}</a>
</li>
@endforeach
我面临的问题是,由于foreach循环,它每次都会复制主类别,例如
<li class="inner-dropdown-item">
<p>
<a href="/category/android/">Android</a>
</p>
</li>
<li class="inner-dropdown-item">
<a href="/category/android/calendars">Calendars</a>
</li>
<!-- /INNER DROPDOWN ITEM -->
<!-- /This Below Android category should not be shown again -->
<li class="inner-dropdown-item">
<p>
<a href="/category/android/">Android</a>
</p>
</li>
<li class="inner-dropdown-item">
<a href="/category/android/database-abstractions">Database Abstractions</a>
</li>
如您所见,每次显示子类别时,它都会复制主类别。我怎么能显示主要类别一次,然后所有子类别下面它
我有另一个模板,它有不同的菜单HTML结构
<!-- MENU ITEM -->
<li class="menu-item sub">
<a href="#">
Designer
<!-- SVG ARROW -->
<svg class="svg-arrow">
<use xlink:href="#svg-arrow"></use>
</svg>
<!-- /SVG ARROW -->
</a>
<div class="content-dropdown">
<!-- FEATURE LIST BLOCK -->
<?php $m_des = ''; ?>
@foreach ($design_category as $des_value)
@if($m_des != $des_value->slug)
<div class="feature-list-block">
<a href="{{ Config::get('constants.url.BASE_URL') }}category/{{$des_value->slug}}/">
<h6 class="feature-list-title">{{ucwords(str_replace('-', ' ', $des_value->slug))}}</h6></a>
<hr class="line-separator">
<?php $m_des = $des_value->slug; ?>
@endif
<!-- FEATURE LIST -->
<ul class="feature-list">
<li class="feature-list-item">
<a href="{{ Config::get('constants.url.BASE_URL') }}category/{{$des_value->slug}}/{{$des_value->sub_slug}}/">{{ucwords(str_replace('-', ' ', $des_value->sub_slug))}}</a>
</li>
</ul>
<!-- /FEATURE LIST -->
</div>
@endforeach
</div>
</li>
<!-- /MENU ITEM -->
它一次又一次地生成ul和div,从而导致html错误
也许有更好的解决办法。但是你可以试试这个。按类别排序。id
则上次是否打印循环内检查主类别
<?php
$category = App\Models\Menu::where('categories.type', 'Android')
->select('categories.*', 'sub_category.slug as sub_slug', 'sub_category.title')
->join('sub_category', 'sub_category.category_of', '=', 'categories.id')
->orderBy('categories.id');
->get();
$latest_category = "";
?>
@foreach ($category as $value)
<?php if($latest_category != $value->slug){ ?>
<li class="inner-dropdown-item">
<p>
<a href="{{ Config::get('constants.url.BASE_URL') }}category/{{$value->slug}}/">{{ucwords(str_replace('-', ' ', $value->slug))}}</a>
</p>
</li>
<?php
$latest_category = $value->slug;
} ?>
<li class="inner-dropdown-item">
<a href="{{ Config::get('constants.url.BASE_URL') }}category/{{$value->sub_slug}}/{{$value->sub_slug}}">{{ucwords(str_replace('-', ' ', $value->sub_slug))}}</a>
</li>
@endforeach
编辑
<div class="content-dropdown">
<!-- FEATURE LIST BLOCK -->
<?php $m_des = '';
$end_div = '';
?>
@foreach ($design_category as $des_value)
@if($m_des != $des_value->slug)
{{$end_div}}
<div class="feature-list-block">
<a href="{{ Config::get('constants.url.BASE_URL') }}category/{{$des_value->slug}}/">
<h6 class="feature-list-title">{{ucwords(str_replace('-', ' ', $des_value->slug))}}</h6></a>
<hr class="line-separator">
<?php $m_des = $des_value->slug;
$end_div = "</div>";
?>
@endif
<!-- FEATURE LIST -->
<ul class="feature-list">
<li class="feature-list-item">
<a href="{{ Config::get('constants.url.BASE_URL') }}category/{{$des_value->slug}}/{{$des_value->sub_slug}}/">{{ucwords(str_replace('-', ' ', $des_value->sub_slug))}}</a>
</li>
</ul>
<!-- /FEATURE LIST -->
@endforeach
{{$end_div}}
</div>
如何在活动启动上显示“滑动菜单”?我正在使用导航抽屉显示幻灯片菜单如下代码 `public class MainActivity extends Base_Activity{private DrawerLayout MDrawerLayout;public static ListView MDrawerList;private ActionBarDrawerToggle MDrawerToggle
问题内容: 我正在显示由HTML表和图像组成的屏幕,而HTML表是完全动态的。 代码工作流程 当用户正在加载页面(带有URL)时,我将在不同部分呈现HTML表,这意味着该页面已加载。我一次获取所有表数据为’JSON’格式,然后在加载满表时UI的gap(Interval)中一次显示3-3行,3 seconds然后显示图像一段时间,然后再显示一次加载表并在加载表后显示图像,所以它工作正常,现在我想做的
我希望我的Laravel应用程序在开发期间在浏览器中输出断言错误。虽然我已经把一些断言在我的Laravel代码,肯定会失败,我从来没有看到任何错误输出在浏览器? Laravel中是否有断言报告配置可以强制显示这些错误? 在生产中,我希望断言失败调用回调方法并通过电子邮件向我发送错误。
问题内容: 我需要使用D3.js在SVG:Text中显示多行文本。 示例数据如下所示,我想为每个作者在单个节点下显示“所有”标题,而不是在强制方向布局中显示为单个节点。 样本数据 SVG:text仅需要输入一个文本并显示在一行中,因此我添加了更多文本并调整了“ dy”?还是收回节点信息并替换? 感谢您的提示。 问题答案: 您有以下选择。 如前所述,您可以添加多个具有适当间距的元素。 您还可以在一个
我遵循这个例子:https://docs.mapbox.com/android/maps/examples/symbol-layer-info-window/ 也在这里: https://github.com/mapbox/mapbox-android-demo/blob/master/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroid
我正在开发一个NetBeans插件,它需要使用“动态”菜单,因为目前必须在专用于某个菜单项及其操作的类中硬编码。然而,我希望允许用户通过插件提供的UI更改菜单项的值(它们的作用-这将在主方法中处理变量,我不允许用户为主方法本身编写代码-它们被调用的内容及其关联的键盘快捷键),以及添加和删除菜单项。我的插件可能会从一个文件中读取这些首选项,理想情况下,只有一个类可以创建所有这些动态菜单项,其值在首选