我是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;
有谁可以弄清楚我在这里做了什么错?
答案 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';