1

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

website.com/doctor/results/

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

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

我不确定如何实现这一目标?无需重新考虑整个导航(到目前为止看起来还不错)。

4

2 回答 2

0

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

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

例子:

目录结构:

application/controllers/doctor/results.php

您的 results.php 文件将如下所示:

function index()
{
// all results here
}

function test()
{
// test result display here
}
于 2011-05-06T09:39:13.340 回答
0

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

在文件/application/config/routes.php中,添加此路由:

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

test-results您希望 url 段在哪里(您将链接到的页面)。

这基本上说:

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

你可以对路线做很多事情。在用户指南中阅读有关路由的更多信息

如果您发现$this->router->class/method不起作用,请尝试使用URI 类中的一些功能

于 2011-05-06T09:51:46.550 回答