0
我想根據角色製作一個菜單,但是當我嘗試將新的子菜單添加到我的菜單中時,圖標就會被複制。我想知道如何解決這個錯誤?我的JSON看起來像我只有一個模塊的圖標,它應該顯示每個模塊一個圖標,但沒有正確顯示它。爲什麼我的菜單上會出現重複圖標?
MY_Controller
protected function getModules(){
if($this->session->userdata('log')){
$data = $this->session->userdata('log');
$menu = array();
$seccions = $this->module->get_rows();
foreach ($seccions as $index => $seccion){
$modules = $this->module->query("SELECT CONCAT('".$seccion['id']."',storelte_module.id) AS id,CONCAT('".base_url('assets/img/sidebar')."','/',storelte_module.icon) AS icon,storelte_module.module AS value,storelte_module.section_id,CONCAT('".base_url()."',storelte_module.url) AS url FROM storelte_module INNER JOIN storelte_module_profile ON storelte_module_profile.module_id = storelte_module.id WHERE section_id = $seccion[id] AND storelte_module_profile.profile_id = $data[id] AND storelte_module_profile.STATUS = 1");
$seccions[$index]['data']= $modules;
if (!count($seccions[$index]['data']))
unset($seccions[$index]);
}
foreach ($seccions as $item)
array_push($menu,$item);
return $menu;
}
}
home_controller
public function index(){
$data = $this->session->userdata('log');
$data['module'] = "Inventory";
$data['fields'] = $this->getModules();
$this->load->view('header',$data);
$this->load->view('index');
$this->load->view('inventory/product');
$this->load->view('footer');
}
菜單視圖
<aside class="main-sidebar">
<section class="sidebar">
<ul class="sidebar-menu">
<?php foreach ($fields as $section): ?>
<?php foreach ($section['data'] as $submenu): ?>
<li class="treeview">
<a href="">
<img src="<?= $section['icon']?>" alt="" class="menu-icon"> <span><?= $section['section'] ?></span>
<i class="fa fa-angle-left pull-right"></i>
</a>
<ul class="treeview-menu">
<li><a href="<?= $submenu['url']?>"><i class="fa fa-circle-o text-aqua"></i> <?= $submenu['value'] ?></a></li>
</ul>
</li>
<?php endforeach ?>
<?php endforeach ?>
</ul>
</section>
</aside>
JSON
[
{
"id": "1",
"section": "Inventory",
"icon": "http:\/\/localhost\/storelte\/assets\/img\/sidebar\/items.png",
"data": [
{
"id": "11",
"icon": null,
"value": "products",
"section_id": "1",
"url": "http:\/\/localhost\/storelte\/inventory\/product"
},
{
"id": "12",
"icon": null,
"value": "provider",
"section_id": "1",
"url": "http:\/\/localhost\/storelte\/purchase\/provider"
}
]
},
{
"id": "3",
"section": "Sales",
"icon": "http:\/\/localhost\/storelte\/assets\/img\/sidebar\/sales.png",
"data": [
{
"id": "33",
"icon": null,
"value": "sales",
"section_id": "3",
"url": "http:\/\/localhost\/storelte\/sale\/sales"
}
]
},
{
"id": "4",
"section": "Reports",
"icon": "http:\/\/localhost\/storelte\/assets\/img\/sidebar\/barchart.png",
"data": [
{
"id": "44",
"icon": null,
"value": "reports",
"section_id": "4",
"url": "http:\/\/localhost\/storelte\/report\/reports"
}
]
},
{
"id": "5",
"section": "Store Config",
"icon": "http:\/\/localhost\/storelte\/assets\/img\/sidebar\/config.png",
"data": [
{
"id": "55",
"icon": null,
"value": "config",
"section_id": "5",
"url": "http:\/\/localhost\/storelte\/setting\/settings"
}
]
}
]
您可以在索引方法中執行$ data的var_dump並觀察您獲得的字段。 – TimBrownlaw