我的header.php
代码中有以下代码,$menu
的值来自'my_controller.php
&数据库查询已在menu_model.php
中定义。
错误消息
Severity: Notice
Message: Undefined Index: menu_name
Filename: Header.php
Line number: 187
Backtrace:
File: ////Header.php
Line: 187
Function: _error_handler
File: ////my_controller.php
Line: 32
Function: view
menu_model.php
public function get_main_menu()
{
$this->db->select("*");
$this->db->from('menu');
$this->db->order_by("menu_id", "ASC");
$query = $this->db->get();
return $query;
}
my_controller.php
protected function loadHeader($title = 'Home')
{
$menu['menu'] = $this->menu_model->get_main_menu()->result_array();
//var_dump($menu['menu']); ***This shows data which is mentioned below
$data['menu'] = $menu;
$data['title'] = $title;
$this->load->view('templates/header', $data); ***This is line 32
}
的header.php
<?php foreach ((array_values($menu)) as $mega_menu): ?>
<li class="mega-menu">
<a href="<?php echo BASE_URL.('/category/'.$mega_menu['menu_id'].'/'); ?>">
<div><?php echo $mega_menu['menu_name']?></div>
</a> ***This is line 187
</li>
<?php endforeach; ?>
的var_dump($菜单)
array(1) { ["menu"]=> array(4) { [0]=> array(4) { ["menu_id"]=> string(1) "1"
["menu_name"]=> string(14) "Start Business" ["menu_desc"]=> string(34) "DSC,
DPIN Initiation etc. services" ["breadcrumb_id"]=> string(1) "0" } [1]=> array(4)
{ ["menu_id"]=> string(1) "2" ["menu_name"]=> string(12) "Intellectual" ["menu_desc"]=>
string(35) "Trademark and Copyright Filing etc." ["breadcrumb_id"]=> string(1) "0" }
[2]=> array(4) { ["menu_id"]=> string(1) "3" ["menu_name"]=> string(8) "Personal"
["menu_desc"]=> string(47) "Wills, Rent Agreements, General Affidavits etc."
["breadcrumb_id"]=> string(1) "0" } [3]=> array(4) { ["menu_id"]=> string(1) "4"
["menu_name"]=> string(9) "Contracts" ["menu_desc"]=> string(32) "General
Business Agreements etc." ["breadcrumb_id"]=> string(1) "0" } } }
有人可以帮我找错吗?
答案 0 :(得分:4)
有些人会更改您的my_controller.php
。可以$data['menu'] = $menu['menu'];
代替$data['menu'] = $menu;
protected function loadHeader($title = 'Home')
{
$menu['menu'] = $this->menu_model->get_main_menu()->result_array();
//var_dump($menu['menu']); ***This shows data which is mentioned below
$data['menu'] = $menu['menu'];
$data['title'] = $title;
$this->load->view('templates/header', $data); ***This is line 32
}
答案 1 :(得分:1)
首先将menu_model.php
保存为Menu_model.php
并使用以下代码
public function get_main_menu()
{
$this->db->select("*");
$this->db->from('menu');
$this->db->order_by("menu_id", "ASC");
$query = $this->db->get();
return $query;
}
使用以下代码将my_controller.php
保存为My_controller.php
。
protected function loadHeader($title = 'Home')
{
$this->load->helper('url');
$this->load->model('menu_model');
$menu= $this->menu_model->get_main_menu()->result_array();
$data['menu'] = $menu;
$data['title'] = $title;
$this->load->view('templates/header', $data);
}
在您看来,请输入以下代码:
<?php foreach($menu as $mega_menu): ?>
<li class="mega-menu">
<a href="<?php echo base_url('category/'.$mega_menu['menu_id']); ?>">
<div><?php echo $mega_menu['menu_name'];?></div>
</a>
</li>
<?php endforeach; ?>