gpt4 book ai didi

php - 数据库驱动的 codeigniter 导航栏

转载 作者:太空宇宙 更新时间:2023-11-03 18:10:31 24 4
gpt4 key购买 nike

我是 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';
}

设置 Controller :

<?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');

}
}
?>

在数据库中,我在 Controller home 和页面 contact

当我通过我的域名访问我的网站时,我只能看到首页,但如果我将 index.php/home 添加到它,我什么也得不到,或者 index.php/home/contact 也没有

我的 index.php 文件的路径,位于我的 domain/application/views/themes/smooth/index.php

谁能帮我解决我遗漏的问题或问题是什么?

最佳答案

您没有将路由传递给 View 。

如果没有看到有问题的 View ,我无法判断那里是否存在问题,但您需要像这样传递数据:

$this->load->model('yourmodel');
$routes = $this->yourmodel->getRoutes();
$data = array(
'routes' => $routes
);
$this->load->view('smooth/header.php');

数据库查询在一个模型中进行,因此您需要定义该模型以及返回数据的方法 - 此处我将该模型表示为 yourmodel 并将要调用的方法表示为 获取路由。在任何情况下,您都不应该将数据库查询放在routes.php 中。

关于php - 数据库驱动的 codeigniter 导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23824946/

24 4 0