Php 代码点火器管理路由
我被这个问题困住了。 尝试访问codeigniter中的管理页面时出现404错误,我只能访问前面的页面。 这里是我的route.php文件:Php 代码点火器管理路由,php,codeigniter,codeigniter-url,codeigniter-routing,Php,Codeigniter,Codeigniter Url,Codeigniter Routing,我被这个问题困住了。 尝试访问codeigniter中的管理页面时出现404错误,我只能访问前面的页面。 这里是我的route.php文件: $route['default_controller'] = "page"; $route['404_override'] = ''; $route[':any'] = "page/index/$1"; **WORKS** $route['admin/page'] = "admin/page"; **WORKS** $route['admin/page/o
$route['default_controller'] = "page";
$route['404_override'] = '';
$route[':any'] = "page/index/$1"; **WORKS**
$route['admin/page'] = "admin/page"; **WORKS**
$route['admin/page/order'] = "admin/page/order"; **NOT WORKING** <!-- this i my issue -->
$route['admin/page/edit'] = "admin/page/edit"; **WORKS**
$route['admin/page/edit/(:num)'] = "admin/page/edit/$1"; **NOT WORKING** <!-- this i my issue -->
前端页面格式
http://www.my_site.com/index.php/about
http://www.my_site.com/admin/page
http://www.my_site.com/index.php/admin/page/edit/1
后端格式
http://www.my_site.com/index.php/about
http://www.my_site.com/admin/page
http://www.my_site.com/index.php/admin/page/edit/1
请问,有人能帮我吗?
提前谢谢
伙计们谢谢你们的回复
这里有我的页面管理控制器,我还修改了上面的route.php
<?php
class Page extends Admin_Controller
{
public function __construct ()
{
parent::__construct();
$this->load->model('page_m');
}
public function index ()
{
// Fetch all pages
$this->data['pages'] = $this->page_m->get_with_parent();
// Load view
$this->data['subview'] = 'admin/page/index';
$this->load->view('admin/_layout_main', $this->data);
}
public function order ()
{
$this->data['sortable'] = TRUE;
$this->data['subview'] = 'admin/page/order';
$this->load->view('admin/_layout_main', $this->data);
}
public function order_ajax ()
{
// Save order from ajax call
if (isset($_POST['sortable'])) {
$this->page_m->save_order($_POST['sortable']);
}
// Fetch all pages
$this->data['pages'] = $this->page_m->get_nested();
// Load view
$this->load->view('admin/page/order_ajax', $this->data);
}
public function edit ($id = NULL)
{
// Fetch a page or set a new one
if ($id) {
$this->data['page'] = $this->page_m->get($id);
count($this->data['page']) || $this->data['errors'][] = 'page could not be found';
}
else {
$this->data['page'] = $this->page_m->get_new();
}
// Pages for dropdown
$this->data['pages_no_parents'] = $this->page_m->get_no_parents();
// Set up the form
$rules = $this->page_m->rules;
$this->form_validation->set_rules($rules);
// Process the form
if ($this->form_validation->run() == TRUE) {
$data = $this->page_m->array_from_post(array(
'title',
'slug',
'body',
'template',
'parent_id'
));
$this->page_m->save($data, $id);
redirect('admin/page');
}
// Load the view
$this->data['subview'] = 'admin/page/edit';
$this->load->view('admin/_layout_main', $this->data);
}
public function delete ($id)
{
$this->page_m->delete($id);
redirect('admin/page');
}
public function _unique_slug ($str)
{
// Do NOT validate if slug already exists
// UNLESS it's the slug for the current page
$id = $this->uri->segment(4);
$this->db->where('slug', $this->input->post('slug'));
! $id || $this->db->where('id !=', $id);
$page = $this->page_m->get();
if (count($page)) {
$this->form_validation->set_message('_unique_slug', '%s should be unique');
return FALSE;
}
return TRUE;
}
}
您似乎没有
function index()
在您的管理员控制器中。我没有看到任何指向您的管理员控制器的路由或URL。如果用户键入http://.../admin/page
Codeigniter将尝试查找名为Admin
的控制器,而不是Admin\u controller
,除非已设置路由
此外,您还有以下路由:$route[':any']=“page/index/$1”代码>此路由将获取给定的任何URL,并将用户重定向到页面
控制器(您尚未提供任何代码)。我想摆脱它,或者它的功能是什么
您需要决定的是,您的管理员URL是否应为:http://www.my_site.com/admin/page
或者这个:http://www.my_site.com/admin_controller/page
我个人会选择第一个,因为它看起来更干净。这意味着您必须决定是将控制器命名为Admin\u controller
,还是只命名为Admin
。我会选择Admin
,这样你就不必处理路由了
最终结果应该是:
您的管理员URL:http://www.my_site.com/admin/page
您的控制器:application/controllers/Admin.php
class Admin extends MY_Controller {
public function __construct() {
//... your code here
}
public function page() {
//... your code here
}
}
谢谢你的回答。CodeGodieI,我已经通过发布页面管理员Crontroller编辑了我的问题,实际上我有页面Adim、文章管理员、仪表板管理员和用户管理员。你提供的路由仍然不起作用。路由按从上到下的顺序工作,这意味着您的所有路由都将指向该:任何路由。如何在管理面板中使用多个控制器。我想您展示的示例仅适用于admin.php控制器?我不确定是否理解您的问题。你能详细解释一下吗?我现在有点困惑。你能解释一下你的班级结构吗?我看到了我的控制器是的,你是对的,我看到了:我的控制器你现在在吗?也许我们可以试着一起解决。我可以通过TeamviewerI帮助你我现在在这里,如果你能帮助我就太好了