编辑:我是新的Codeigniter我不是如何使用Codeigniter路由。我创建了联系我们页面和地图页面。地图页面是“联系我们”页面的子页面。
表名:页面
id label link parent
1 Contact Us contact-us 0
3 About Us about-us 0
2 Map map 1
这是我的控制器
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Page extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->helper('url');
$this->load->model('page_model');
}
public function index()
{
$data['getAllPage'] = $this->page_model->getAllPages();
$this->load->view('page_listing',$data);
}
public function view($id) {
$data['single_page'] = $this->page_model->displaySinglePage($id);
$this->load->view('single_page',$data);
}
}
在routes.php中我放了$ route ['(:any)'] =“page / view / $ 1”;
当我输入网址“http://mytest.dev/contact-us/”或“http://mytest.dev/about-us/”时,它会显示正确的联系页面内容,但我输入“http://mytest.dev/contact-us/map”,它仍会显示联系页面的内容。
当我输入“http://mytest.dev/contact-us/map”时,我想要的是显示地图页面的内容
提前致谢。
答案 0 :(得分:1)
我认为以下路线应该有效
$route['contact-us'] = 'page/view/$1';
$route['contact-us/map'] = 'page/view/$2';
当你在视图方法中回显$ id时。
“http://mytest.dev/contact-us/”将打印$ 1
和
“http://mytest.dev/contact-us/map”将打印$ 2
希望这个解决方案有所帮助。
答案 1 :(得分:1)
请尝试代码也许可以帮助
// Parents and Child page.
$route['page/(:any)/(:num)'] = "page/view/$1/$2";
// For Main Home Page.
$route['(:any)'] = "page/view/$1";
答案 2 :(得分:1)
我的网站有一个主要的“活动”页面和一个“活动/日历”页面。将页面创建为单独的视图,然后为主控制器中的每个子页面创建一个函数。这是我的事件控制器。如果您想要动态页面,可以在函数中添加适当的代码。
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Events extends CI_Controller {
public function index()
{
$this->load->view('inc/header.php');
$this->load->view('events_view');
$this->load->view('inc/footer.php');
}
public function calendar()
{
$this->load->view('inc/header.php');
$this->load->view('calendar_view');
$this->load->view('inc/footer.php');
}
}