Codeigniter搜索?

时间:2017-08-03 17:43:40

标签: codeigniter

这个项目类似于建立在codeigniter上的社交网站。

这里我的默认控制器是MyController.php(加载登录页面) 并说我的域名是aravind.com

在我的应用程序中,每个用户都有一个唯一的ID。 我的要求是什么,用户的特定页面应该在什么时候打开 在域名之后,用户的unique_id会立即得到。 即,phrasesPage.Title = string.Format("Timer: {0:D3}", AS.timerSeconds); 应该打开其唯一ID为123的用户页面。

我知道这可以通过在控制器之间放置一个控制器和一个功能来实现 domain和unique_id,(例如:aravind.com/123)。 但是通过这样做,特定用户的URL变得冗长,这是不可接受的。 所以我需要一个逻辑来解决这个问题。

注意: 我的控制器包中有其他类和文件夹,所以必需的soln应该是 足够聪明,可以使用UniqueID来区分控制器包中的类和文件夹。 所以为了区分我可以说类和文件夹名称将是连续的String 其中UniqueID以下划线(aravind.com/Search_class/search_func/123)开头。

同样的事情在Facebook上完成,就像我们输入_一样,它会打开我的帐户, 如果网址像facebook.com/aravind.pillai.983那样,它将打开设置页面 拥有活动会话的用户。

2 个答案:

答案 0 :(得分:0)

您应该使用路由,您可以在其中设置所需的每条路线。在APPPATH.'config/routes.php'文件中添加以下内容:

$route['(:any)'] = 'Search_class/search_func/$1';

您应该阅读有关路由的documentation并查看其他examples

另外,请注意应用程序将始终检查第一个URI段中的Search_class/search_func/$1,因此您需要将此规则放在routes.php文件的末尾。在该规则之前,您需要设置其他规则,如:

$route['about'] = 'pages_c/show/about';
$route['contact'] = 'pages_c/show/contact';
// then after all declared routes, you can set wild card placeholder
$route['(:any)'] = 'Search_class/search_func/$1';

答案 1 :(得分:0)

route["404_override"]设置为您的一个自定义类(例如Search.php)。 因此,当用户尝试使用无效的URL输入时,它将被重定向到Search.php。

在这里使用$this->uri->segment(1),您将获得第一个uri段的值。

您可以在那里编写逻辑来识别用户是否输入了有效的unique_id。

现在你在一个类(Search.php)中获得了uri值。