我有以下文件:
routes.php
$route['default_controller'] = "first";
$route['404_override'] = '';
$route['page/(:any)'] = 'page/view/$1';
page.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Page extends CI_Controller {
public function index() {
$this->load->view('first');
}
public function view($page = 'first') {
if ( ! file_exists('application/views/pages/'.$page.'.php'))
// Whoops, we don't have a page for that!
show_404()
}
$this->load->view('pages/'.$page);
}
}
?>
impressum.php(在views / pages / impressum.php中)
<p>Hello</p>
现在,当我加载http://xxxx.de/page/impressum时,它只显示一个空白页面。当我加载www.xxxx.de时,它会显示“第一个”页面/默认页面 当我尝试加载时,它甚至没有加载“第一”页面:www.xxx.de/page/
只是不知道我在哪里有错误/错误。
我的文件夹结构是:
http://d.pr/i/vYgw
非常感谢帮助。感谢。
答案 0 :(得分:1)
当你在route.php文件中传递任何内容时,你需要在页面控制器的视图方法中检查$ page
$route['page/(:any)'] = 'page/view/$1';
www.xxx.de/page/会传递一个空字符串或变量来查看方法,你可以检查它
if(!strlen($page)){
$page = "first";
}
使用uri类获取页面的更好方法
public function view() {
$page = $this->uri->segment(2, 'first');
if ( ! file_exists('application/views/pages/'.$page.'.php')){
// Whoops, we don't have a page for that!
show_404()
}
$this->load->view('pages/'.$page);
}
如果找不到任何段,它将首先作为默认值传递