您好我正在尝试创建一个CMS系统,但是当我尝试从控制器调用$subview
到该视图文件时显示错误
Severity: Notice
Message: Undefined variable: subview
Filename: admin/_layout_main.php
这是控制器文件
<?php
class User extends Admin_Controller {
public function __construct() {
parent::__construct();
}
public function index ()
{
// Fetch all users
$this->data['users'] = $this->user_m->get();
// Load view
$this->data['subview'] = 'admin/user/index';
$this->load->view('admin/_layout_main', $this->data);
}
public function edit($id = NULL){
}
public function delete($id){
}
public function login() {
$dashboard = 'admin/dashboard';
$this->user_m->loggedin() == FALSE || redirect($dashboard);
$rules= $this->user_m->rules;
$this->form_validation->set_rules($rules);
if ($this->form_validation->run()==TRUE) {
if ($this->user_m->login()==TRUE){
redirect($dashboard);
}
else{
$this->session->set_flashdata('error'. 'That Email & Password Combination does exist');
redirect('admin/user/login','refresh');
}
}
$this->data['subview'] = 'admin/user/login';
$this->load->view('admin/_layout_modal',$this->data);
}
public function logout(){
$this->user_m->logout();
redirect('admin/user/login');
}
}
我的查看文件_layout_main.php这是我尝试调用$ subview
的地方<?php $this->load->view('admin/components/page_head')?>
<body>
<div class="navbar navbar-static-top navbar-inverse">
<div class="navbar-inner">
<a class="brand" href="<?php echo site_url('admin/dashboard');?>"><?php echo $meta_title;?></a>
<ul class="nav">
<li class="active"><a href="<?php echo site_url('admin/dashboard')?>">Dashboard</a></li>
<li><?php echo anchor('admin/page','pages')?></li>
<li><?php echo anchor('admin/users','users')?></li>
</ul>
</div>
</div>
<div class = "container">
<div class = "row">
<!-- Main Column -->
<div class ="span9">
<?php $this->load->view($subview); ?>
</div>
<!-- Sidebar -->
<div class ="span3">
<section>
<?php echo mailto('********@gmail.com','<i class="icon-user"></i>********@gmail.com');?><br>
<?php echo anchor('admin/user/logout','<i class="icon-off"></i>logout');?>
</section>
</div>
</div>
</div>
<?php $this->load->view('admin/components/page_tail')?>
感谢您的帮助,谢谢
答案 0 :(得分:0)
您正在设置视图路径,如
$data['subview'] = 'admin/user/index';
正在加载
$this->load->view('admin/_layout_main', $data);
请注意,您的布局位于admin中,并且您正在错误地发送视图路径。路径应为user/index
。
我认为这是问题所在。
所以你的观点路径应该是
$data['subview'] = 'user/index';
答案 1 :(得分:0)
我正在做这件事!如果这是来自Van Ray Hosea Gultom在YouTube上的相同教程那么。仪表板控制器中已有index()
功能,因为我们两次调用_layout_main
视图include_once()
不允许这样做。我移动了这段代码:
$this->data['users'] = $this->user_m->get();
$this->data['subview'] = 'admin/user/index';
从用户控制器页面中的index()
到仪表板控制器页面中的index()
。
我对此很新,我不确定这是否是正确的方法,但它解决了问题。
答案 2 :(得分:-1)
您将main描述为您的视图文件,但是您将其传递给layout_main 检查出来
layout_model或layout_main