如何管理笨航线
问题描述:
我打算定义控制器如何管理笨航线
<?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)
{
}
该控制器是不同的查找表操作。查找表可以是教育,宗教,种姓等... 根据规划,给定的函数有$查找作为将定义查找表实现的参数。 作为MVC框架,路由定义为:控制器/方法/ 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.
如果有人回答我将感谢。谢谢!
答
没有质疑(如在注释中描述)的整个方法的理智,你可以简单地实现这一目标使用CI routing:控制器
$route['lookup/(:any)/(:any)/(:any)'] = "lookup/$2/$1/$3";
答
你可以使用.htaccess
或其他一些Apache配置文件来做到这一点。您将需要类似如下的内容:
RewriteEngine on
RewriteRule ^/lookup/(.*)/(.*)/(.*)$ /lookup/$2/$1/$3 [L]
您可能还需要这些调试:
RewriteLog /var/somewhere/some.log
RewriteLogLevel 9
制作一堆每个“查找”参数,只是因为在未来你将面临可扩展性问题。举个例子,无论是在你的控制器/模型中,你将被迫定义什么字段(表X中的列[教育,宗教...]),这是代码将不可读的点,因为太多的if( )等。坚持:一种方法应该只处理一个“任务”(编辑宗教),规则称为“单一责任原则”。教育:控制器,模型,观点;宗教:控制器,模型,视图... – Kyslik 2014-12-07 17:50:53
谢谢你的建议。我会尝试用多个控制器来实现 – 2014-12-08 01:47:33