codeIgniter导航基础知识

问题描述:

如何在Code Igniter中进行简单导航?我一直在跳过所有这些伪文件夹。最初我正在寻找通过文件夹挖掘出的东西,并抓取所有文件名,然后将它们放入数组中,以将它们排序到导航栏中。codeIgniter导航基础知识

问题是,CI似乎在每个页面中使用公用函数作为伪文件夹。比如“public function aboutme()”可以解析为xxx.xxx.xxx.xxx/index.php/[classname]/aboutme。这对我造成了一个问题,因为在制作像test这样的链接时,可以解决xxx.xxx.xxx.xxx/[classname]/contactme。

有没有更好的,动态的方式来制作导航栏而不使用数据库?我可以使用数据库,但我试图学习CI,因为我已经熟悉MySQL,我想找到一种方法来做到这一点。

+0

* CodeIgniter *为每个页面提供伪路径方案。我发现在开发我的应用时非常方便,因为我选择的路径是* [verb]/[object] *,例如'edit/selection'和'view/user'。你没有义务使用它。您可以轻松地重做或覆盖该配置项的部分。 – wallyk 2012-07-25 18:08:25

+0

有没有办法得到一个类的数组及其各自路径? – 2012-07-25 18:16:13

也许自定义路线会帮助你?

http://codeigniter.com/user_guide/general/routing.html

我不知道你的应用程序的结构,但如果你正在使用多个控制器,它不会真正帮助并没有一个真正的简单的方法来做到这一点“自动地”。最好的办法是想出一些方法来管理导航项目,比如数据库(如你所说)。

如果您只使用一个类,则可以在该类上使用PHP的get_class_methods()

$pages = get_class_methods('classname'); 

foreach($pages as $page) 
{ 
    echo anchor($page, ucfirst($page)); 
} 

这是做一个非常简单的方法,你就会有过滤掉私有方法和__construct方法为好。

+0

在这种情况下,每页都有一个标题,正文和页脚。每个页面都是由类中定义的公共函数自动生成的。我发现它*有点难以相信CI不会保留类中包含的函数缓存以及每个函数各自的伪位置 - 或者如果它不保留记录,它不知道多重功能存在。 但我可能是错的,我只做了一天。 – 2012-07-25 18:22:10

+0

那么,你只使用一个班级吗? – Brendan 2012-07-25 18:37:37

+0

Class [classname]扩展CI_Controller,然后创建页面的各种公共函数。我还没有找到制作多个类的理由,只是在类中有多个函数。 – 2012-07-25 18:56:28