我正在使用php框架codeigniter。
我试图在这里创建一个例子:
animals/feline/lion
animals/feline/tiger
animals/feline/snow-leopard
animals/canine/wolf
animals/canine/coyote
同时从数据库中检索genus
(猫)和species
(狮子),animals
是控制器。我有将genus
和species
放在各自数组中的模型。我还想对面包屑中的每个步骤有如下看法:
animals
animals/feline
animals/canine
非常感谢任何帮助。我只是看了autocrumb,就像在视图上显示面包屑控制结构一样,而不是我想要的。
答案 0 :(得分:2)
我使用URi routing.作为另一种方法,而不是__remap()
,这更好,但我只是想给出另一种选择
$route['animals/(:any)/(:any)'] = "animals/method/$1/$2";
在你的动物控制器中你有
function method($genus,$species)
{
$data['breadcrumb'] = 'animals -> '.$genus.' -> '.$species.
$this->load->view('breadcrumb', $data);
$this->load->view('animals/'.$genus.'/'.$species);
}
查看 breadcrumb.php :
<div id="breadcrumb">
<?php echo $breadcrumb;?> <!-- Display: animals -> feline -> lion -->
</div>
查看文件夹包含:
breadcrumb.php
animals /
feline /
feline.php
canine/
wolf.php
这是你在找什么?
评论后编辑:
看起来我们错了你想要的东西。如果您从DB中检索这些变量,那么您可以这样做:
function index()
{
$this->load->view('animals/index');
}
function genus($genus)
{
$data['genus_data'] = $this->your_model->load_genus_data($genus);
$this->load->view('animals/genus',$data);
}
function species($genus,$species)
{
$data['genus_data'] = $this->your_model->load_genus_data($genus);
$data['species_data'] = $this->your_model->load_species_data($species);
$this->load->view('animal/genusspecies',$data);
}
在您的视图中 genus.php (在文件夹动物中):
<?php $genus_data->name;?> is an animal that...Here's a pic in its habitat.
在您的视图中 genusspecies.php (在动物文件夹中):
<?php $species_data->name;?> is a species of genus <?php $genus_data->name;?>....
所有这些可能是您从数据库加载的html片段;
您的路由可能如下所示:
$route['animal'] = "animal";
$route['animal/(:any)'] = "animal/genus/$1";
$route['animal/(:any)/(:any)'] = "animal/species/$1/$2";
如果我是你,我会这样走。我做得更好还是我在某处仍然错了?
答案 1 :(得分:0)
向动物控制器添加_remap()
功能
if($this->uri->segment(3) === FALSE)
{
$this->genus();
}
else
{
$this->species();
}
这假设您有一个名为genus()
的方法和一个名为species()
_remap()
文档:
http://codeigniter.com/user_guide/general/controllers.html#remapping
URI库文档: http://codeigniter.com/user_guide/libraries/uri.html
答案 2 :(得分:0)
redirect('animals/' . $genus . '/' . $species);