我的控制器和方法映射到部分和页面,所以我用它来突出显示当前的导航项目并显示页面模板(通过$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
}