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,我想找到一种方法来做到这一点。
也许自定义路线会帮助你?
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
方法为好。
在这种情况下,每页都有一个标题,正文和页脚。每个页面都是由类中定义的公共函数自动生成的。我发现它*有点难以相信CI不会保留类中包含的函数缓存以及每个函数各自的伪位置 - 或者如果它不保留记录,它不知道多重功能存在。 但我可能是错的,我只做了一天。 – 2012-07-25 18:22:10
那么,你只使用一个班级吗? – Brendan 2012-07-25 18:37:37
Class [classname]扩展CI_Controller,然后创建页面的各种公共函数。我还没有找到制作多个类的理由,只是在类中有多个函数。 – 2012-07-25 18:56:28
* CodeIgniter *为每个页面提供伪路径方案。我发现在开发我的应用时非常方便,因为我选择的路径是* [verb]/[object] *,例如'edit/selection'和'view/user'。你没有义务使用它。您可以轻松地重做或覆盖该配置项的部分。 – wallyk 2012-07-25 18:08:25
有没有办法得到一个类的数组及其各自路径? – 2012-07-25 18:16:13