Codeigniter无法找到视图文件

时间:2017-01-28 04:06:18

标签: php codeigniter

我是codeigniter的初学者,我正在尝试渲染视图文件,但Codeigniter没有获取视图文件。

我的控制器功能

public function index()
{
    $data['news'] = $this->news_model->getNews();
    $data['title'] = 'Todas as noticias';

    $this->load->view('template/header', $data);
    $this->load->view('news/index', $data);
    $this->load->view('template/footer', $data);
}

我的路由

$route['news/(:any)'] = 'news/view/$1';
$route['default_controller'] = 'news';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

有谁可以弄清楚我在这里做了什么错?

2 个答案:

答案 0 :(得分:1)

在您的routes.php文件中,只需删除$route['news/(:any)'] = 'news/view/$1';即可。 CodeIgniter具有自动路由系统。你不需要指定它。它就像example.com/class/function/ID

在您的情况下,您可以通过键入http://localhost/yourprojectname(因为它是您的默认控制器)或键入http://localhost/yourprojectname/index.php/news来访问新闻控制器的索引功能。

请记住,您也可以使用.htaccess文件从网址中删除index.php。 在.htaccess文件中复制并粘贴以下行并将其保存在项目目录中

<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA] </IfModule>

答案 1 :(得分:1)

试试这个

class  news extends CI_Controller() {
public function __construct() {
    parent::__construct();
    $data['news'] = $this->news_model->getNews();
    $data['title'] = 'Todas as noticias';
}

public function index() {
    $this->load->view('template/header', $data);
    $this->load->view('news/index', $data);
    $this->load->view('template/footer', $data);
}
}

在配置文件中添加base_url:

$config['base_url'] = 'http://localhost/folder_name/';

要删除index.php文件,请在根文件夹中添加文件.htaccess,然后将以下代码复制到该文件中:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

并从routes.php中删除代码:

$route['news/(:any)'] = 'news/view/$1';