我打算将控制器定义为
<?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)
{
}
此控制器用于不同的查找表&#39;操作。查询表可以是教育,宗教,种姓等...... 根据规划,给定的函数具有 $ lookup 作为将定义要实现的查找表的参数。 作为MVC框架,路由定义为: Controller / Method / Params
我正在寻找以下解决方案; 如果URI传递为:
**lookup/education/add** must route to **lookup/add/education** Where education is parameter for add function
**lookup/education/edit/1001 must route to **lookup/edit/education/1001 where education and 1001 are parameters for edit function.
如果有人回答,我会很感激。谢谢!
答案 0 :(得分:1)
您可以使用.htaccess
或其他一些apache配置文件来执行此操作。您将需要类似于以下内容的内容:
RewriteEngine on
RewriteRule ^/lookup/(.*)/(.*)/(.*)$ /lookup/$2/$1/$3 [L]
您可能还需要这些用于调试:
RewriteLog /var/somewhere/some.log
RewriteLogLevel 9
答案 1 :(得分:0)
在不质疑整个方法的完整性的情况下(如评论中所述),您可以使用CI routing来实现此目的:
$route['lookup/(:any)/(:any)/(:any)'] = "lookup/$2/$1/$3";