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";