我已经使用CodeIgniter框架构建了一个网站。
不幸的是,我遇到了CodeIgniter load->view()
函数的问题。
每当我尝试使用代码$this->load->view('any_view_file');
加载另一个视图文件时,我都会收到错误:
无法加载请求的文件' any_view_file' .php
例如,我遇到了 $ this-> load->视图(' available_lessons.php',$ data); 命令的问题。因此,让我们尝试重新创建问题并通过...来思考......
有什么建议吗?
我的.htaccess文件:
RewriteEngine on
RewriteCond $1 !^(index\\.php|images|css|lessons|robotos\\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
来自我的config.php文件:
$config['index_page'] = '';
来自我的routes.php文件:
$route['default_controller'] = 'pages/view';
$route['(:any)'] = 'pages/view/$1';
$route['translate_uri_dashes'] = TRUE;
我的Pages.php控制器:
<?php
class Pages extends CI_Controller {
public function view($page = 'home')
{
if ( ! file_exists(APPPATH.'views/pages/'.$page.'.php'))
{
// Whoops, we don't have a page for that!
show_404();
}
else
{
$data['title'] = ucfirst($page); // Capitalize the first letter
$this->load->view('templates/header', $data);
$this->load->view('pages/'.$page, $data);
$this->load->view('templates/footer', $data);
}
}
}
?>
我的Lessons.php控制器:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Lessons extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('db_model');
/* $this->load->library('acl'); */
/* $this->load->helper(array('form', 'url')); */
}
public function index()
{
$this->load->view('available_lessons', array('error' => ' ' ));
}
public function load_available_lessons()
{
$data['result'] = $this->db_model->get_lessons();
$this->load->view('available_lessons.php', $data); /* available_lessons */
}
}
?>
我的db_model.php模型:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class db_model extends CI_Model{
public function __construct()
{
parent::__construct();
}
public function new_lesson($data)
{
/* Inserting in Table "lessons" of CodeIgniter's Database */
$this->db->insert('available_lessons', $data);
}
public function get_lessons() /* $data */
{
/* Get lessons from Table "lessons" of CodeIgniter's Database */
$this->db->select('Name, Description, DateAdded, LastEdit, UserID, FileName');
$this->db->from('lessons');
$query = $this->db->get();
return $result = $query->result();
}
}
?>
我的available_lessons.php查看文件:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<div class="container">
<h6 class="description">Browse Lessons</h6>
<div class="row">
<section id="lessons-panel" class="col-xs-12 col-md-8 col-md-offset-2">
<table>
<tr>
<th>Content</th>
</tr>
<?php foreach($this->result as $r): ?>
<tr><?php echo $r->content; ?>
</tr>
<?php endforeach; ?>
</table>
</section>
</div>
</div>
答案 0 :(得分:0)
正如@ourmandave和一位同事向我指出的那样,我应该在我想要呼叫的每个视图名称之前添加“pages /”。例如,在Lessons.php控制器中,我应该有$ this-&gt; load-&gt; view('pages / available_lessons.php',$ data);事实证明他是对的。 问题是我无法理解我应该包含“pages /”的原因,因为我已经将它包含在Pages.php控制器中。当我调用视图时,似乎没有使用Pages Controller。我将在稍后进行调查。 谢谢大家的宝贵意见!!!!!只是另一个菜鸟错误...