Php 数据库中的Codeigniter菜单
我使用Codeigniter和一个本地数据库制作了一个菜单,其中包含不同书籍的域。我能够显示所有的域名并可视化地构建菜单,但我真的不知道如何使它们可点击,并且在点击之后,只显示属于被点击域的书籍 例如,如果有人单击域X,我希望用户被重定向到website.com/X,并在X域中显示书籍 我不知道从哪里开始,以及如何真正做到这一点。我不是要求有人为我写代码,而是向我解释为了实现这一点我应该采取的步骤 下面是一些我认为相关的代码 控制器:Php 数据库中的Codeigniter菜单,php,twitter-bootstrap,codeigniter,Php,Twitter Bootstrap,Codeigniter,我使用Codeigniter和一个本地数据库制作了一个菜单,其中包含不同书籍的域。我能够显示所有的域名并可视化地构建菜单,但我真的不知道如何使它们可点击,并且在点击之后,只显示属于被点击域的书籍 例如,如果有人单击域X,我希望用户被重定向到website.com/X,并在X域中显示书籍 我不知道从哪里开始,以及如何真正做到这一点。我不是要求有人为我写代码,而是向我解释为了实现这一点我应该采取的步骤 下面是一些我认为相关的代码 控制器: class Menu extends MX_Controll
class Menu extends MX_Controller{
function index() {
$this->load->model('menu_model');
$data['items'] = $this->menu_model->domenii();
$this->load->view('menu', $data);
}
}
型号:
class Menu_model extends CI_Model{
function domenii() {
$query = $this->db->get('domenii');
return $query->result();
}
}
视图(引导):
切换导航
-
谢谢 如果我理解正确,那么我会使用路由,并将每个请求转发给控制器。像这样,
$route['(:any)'] = 'controller/method/$1';
现在,控制器方法
function method($name = null)
{
if(is_null($name))
{
echo 'no $name found...';
}
else
{
// Name was found, make sure it exists
if ($item = $this->model->check_name($name))
{
// Yes the name exists
var_dump($item);
}
else
{
show_error('invalid $name');
}
}
}
希望这有帮助。您可以编写一个控制器方法,这样您的url就会变成www.website.com/controller/method/X。其中X是决定域类型的参数。在此控制器方法中,首先确定参数值是否正确,并相应地从模型中获取数据
function method($name = null)
{
if(is_null($name))
{
echo 'no $name found...';
}
else
{
// Name was found, make sure it exists
if ($item = $this->model->check_name($name))
{
// Yes the name exists
var_dump($item);
}
else
{
show_error('invalid $name');
}
}
}