我的控制器和方法映射到部分和页面,因此我使用它来突出显示当前导航项目和显示页面模板(通过$ this-> router-> class ..)。但是我遇到了一些问题,我对医生测试结果有以下结构:
website.com/doctor/results/
因此'医生'控制器有一个方法'结果',可以加载结果的页面列表。一切都好。
但是列出的每个结果旁边都有一个链接,即“查看详细信息”以显示该测试的详细信息。在功能上,单击此链接会将您带到“测试”控制器,并使用自己的方法“视图”来显示该特定测试的详细信息页面。但显然你应该仍然在“医生”部分,“结果”小节。
我不确定如何实现这一目标?没有重新考虑整个导航(直到现在看起来还不错)。
答案 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