【发布时间】:2014-07-12 13:27:12
【问题描述】:
我是 CodeIgniter 的新手,有人告诉我这是要走的路。
我已经阅读了几次用户手册,但似乎不明白我想做一个从数据库驱动的导航栏的事情。我在这里发现了一些帖子,说的是我已经实现的一种方法,但无论我做什么,它似乎都对我不起作用。到目前为止我做了什么:
创建了一个表:
CREATE TABLE IF NOT EXISTS `app_routes` (
`id` bigint(20) NOT NULL auto_increment,
`slug` varchar(192) collate utf8_unicode_ci NOT NULL,
`controller` varchar(64) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`),
KEY `slug` (`slug`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1;
添加到route.php文件
$route[ 'default_controller' ] = 'home';
$route[ '404_override' ] = 'error404';
require_once( BASEPATH .'database/DB'. EXT );
$db =& DB();
$query = $db->get( 'app_routes' );
$result = $query->result();
foreach( $result as $row )
{
$route[ $row->slug ] = $row->controller;
$route[ $row->slug.'/:any' ] = $row->controller;
$route[ $row->controller ] = 'error404';
$route[ $row->controller.'/:any' ] = 'error404';
}
设置控制器:
<?php
class Home extends CI_Controller {
public function index()
{
$this->load->view('smooth/header.php');
$this->load->view('smooth/navbar.php');
$this->load->view('smooth/index.php');
$this->load->view('smooth/footer.php');
}
}
?>
在我在控制器home 和页面contact 下的数据库中
当我通过我的域名访问我的网站时,我只看到首页,但如果我将 index.php/home 添加到它,我什么也得不到,或者 index.php/home/contact 什么也没有
我的index.php 文件的路径位于我的domain/application/views/themes/smooth/index.php 中
任何人都可以帮助我解决我缺少的问题或问题所在吗?
【问题讨论】:
-
当 EllisLabs 不再积极维护 CodeIgniter 并且似乎没有其他人愿意接管它时,任何人将 CodeIgniter 描述为“必经之路”似乎有点奇怪。
-
另外,你真的需要展示你的视图文件,因为很可能问题就在那里。
-
@MatthewDaly,我质疑 codeigniter 没有被激活,据说那里的库可以节省大量时间并且有利于安全。
-
在 view/themes/smooth/index.php 我只写了索引页面,在 view/themes/smooth/contact.php 我有联系页面。我试图通过转到 mydomain/index.php/home/ 和 mydomain/index.php/home/contact 给他们打电话,但没有工作
-
与使用普通的旧 PHP 相比,任何框架都会为您节省大量的开发时间。由于不再积极维护 CodeIgniter,因此如果在其中发现漏洞,则可能不会对其进行修补。周围有很多现代的、积极维护的 PHP 框架。
标签: php css codeigniter twitter-bootstrap