代码点火器:基于当前控制器/方法的导航和模板问题


Code Igniter: issue with nav & templating based on current controller/method

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

website.com/doctor/results/

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

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

我不知道如何实现这一目标?而无需重新考虑整个导航(到目前为止似乎还不错)。

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

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

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

test-results 是您希望网址段(您将链接到的页面)的任何内容。

这基本上是说:

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

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

如果您发现$this->router->class/method不起作用,请尝试尝试 URI 类中的某些函数

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

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

例:

目录结构:

application/controllers/doctor/results.php

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

function index()
{
// all results here
}
function test()
{
// test result display here
}