Jay*_*ran 1 codeigniter url-routing
我在我的项目中使用codeigniter作为模块来显示信息作为类别及其项目.
我希望网址如下所示
这里sitename.com/module/是codeigniter的根,默认控制器是home.
我的问题是如何为一个段或uri和两个uri段设置路由
我将按如下方式定义我的功能
所以,要么我想根据段的数量创建一个路由,或者如果有任何其他备用通过路由来完成这个,那么这很好.
我想使用路由而不是将2段作为参数传递给Index函数.
那么,?
将站点的基本URL设置为sitename.com/module.
您可以尝试数据库驱动的路由.
这通过使用数据库表为您编写路由来工作.
示例数据库表;
CREATE TABLE IF NOT EXISTS `app_routes` (
`id` bigint(20) NOT NULL auto_increment,
`category` varchar(192) collate utf8_unicode_ci NOT NULL,
`controller` varchar(64) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`),
KEY `category` (`category`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1;
Run Code Online (Sandbox Code Playgroud)
示例路线;
$route[ 'default_controller' ] = 'home';
$route[ '404_override' ] = 'error404';
require_once( BASEPATH .'database/DB'. EXT );
$db =& DB();
$query = $db->get( 'app_routes' );
$result = $query->result();
foreach( $result as $row )
{
$route[ $row->slug ] = 'home/category_lookup/'.$row->slug;
$route[ $row->slug.'/:any' ] = 'home/item_lookup/'$row->slug/$1;
$route[ $row->controller ] = 'error404';
$route[ $row->controller.'/:any' ] = 'error404';
}
Run Code Online (Sandbox Code Playgroud)
此链接将为您提供完整的详细信息(这不是我的工作 - Google只是我的朋友).
$route['page/(:any)'] = "home/page/$1";
$route['page'] = "home/index";
$route['(:any)/page/(:any)'] = "home/category/$1/page/$2";
$route['(:any)/page'] = "home/category/$1";
$route['page'] = "home/index";
$route['(:any)/(:any)'] = "home/title/$2";
$route['(:any)'] = "home/category/$1";
Run Code Online (Sandbox Code Playgroud)
最后两行(7和8)是我需要的......这符合我的目的
最后两行(1,2,3,4,5)之前的行是我如何使用最后两行(7和8)的分页
只有家/类别和家/有分页而不是主页/标题,这是最后一页.
同时,如果有人发现代码可能是错误或需要完美,那么请添加一个答案,以便我可以更新.
| 归档时间: |
|
| 查看次数: |
16689 次 |
| 最近记录: |