Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何管理codeigniter路由_Php_Codeigniter - Fatal编程技术网

Php 如何管理codeigniter路由

Php 如何管理codeigniter路由,php,codeigniter,Php,Codeigniter,我计划将控制器定义为 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Lookup extends CI_Controller { public function __construct() { parent::__construct(); if(!($this->php_session->get('logged_in')))

我计划将控制器定义为

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Lookup extends CI_Controller {
public function __construct()
{       
    parent::__construct();
    if(!($this->php_session->get('logged_in')))
    {
        redirect('login', 'refresh');
    }
}

public function add($lookup=null)
{

}

function edit($lookup=null,$id=null)
{

}

function save($lookup=null,$id=null)
{

}

function list($lookup=null)
{

}

如果有人回答,我将不胜感激。谢谢大家!

您可以使用
.htaccess
或其他一些apache配置文件来执行此操作。您将需要类似以下内容:

RewriteEngine on
RewriteRule ^/lookup/(.*)/(.*)/(.*)$ /lookup/$2/$1/$3 [L]
您可能还需要这些用于调试:

RewriteLog /var/somewhere/some.log
RewriteLogLevel 9

在不质疑整个方法的合理性(如评论中所述)的情况下,您可以通过以下方式实现:


为每个“查找”参数创建一组控制器,因为将来您将面临可伸缩性问题。例如,在控制器/模型中的某个地方,您将被迫定义哪些字段(表X中的列[教育,宗教…]),这就是代码无法读取的点,因为有太多的
if()
s等。请坚持:一个方法只能处理一个“任务”(编辑宗教),规则称为“单一责任原则”。教育:控制者,模型,观点;宗教:控制者,模型,观点…谢谢你的建议。我将尝试用多个控制者来实施
RewriteLog /var/somewhere/some.log
RewriteLogLevel 9
$route['lookup/(:any)/(:any)/(:any)'] = "lookup/$2/$1/$3";