Code Igniter:nav&基于当前控制器/方法的模板化

时间:2011-05-06 08:31:36

标签: php codeigniter templates navigation codeigniter-routing

我的控制器和方法映射到部分和页面,因此我使用它来突出显示当前导航项目和显示页面模板(通过$ this-> router-> class ..)。但是我遇到了一些问题,我对医生测试结果有以下结构:

website.com/doctor/results/

因此'医生'控制器有一个方法'结果',可以加载结果的页面列表。一切都好。

但是列出的每个结果旁边都有一个链接,即“查看详细信息”以显示该测试的详细信息。在功能上,单击此链接会将您带到“测试”控制器,并使用自己的方法“视图”来显示该特定测试的详细信息页面。但显然你应该仍然在“医生”部分,“结果”小节。

我不确定如何实现这一目标?没有重新考虑整个导航(直到现在看起来还不错)。

2 个答案:

答案 0 :(得分:0)

您可以在控制器目录中创建一个名为“doctor”的子目录,然后使用“result”作为控制器名称。

要显示所有结果,您将使用主“index()”方法。然后,您可以使用另一个方法调用“test()”来显示测试。

示例:

目录结构:

application/controllers/doctor/results.php

您的results.php文件就像这样:

function index()
{
// all results here
}

function test()
{
// test result display here
}

答案 1 :(得分:0)

执行此操作的常用方法是使用route

在文件/application/config/routes.php中,添加以下路线:

$route['doctor/test-results/(:any)'] = 'test/view/$1';

test-results是您想要的网址段(您要链接到的网页)。

这基本上说:

  

任何doctor/test-results/something的网址都应该加载test/view/something

你可以用路线做很多事情。请阅读User Guide

中有关路由的详情

如果您发现$this->router->class/method无效,请尝试使用URI Class

中的某些功能进行试验