2011-08-03 7 views
0

我使用php框架codeigniter。Codeigniter兩個參數數據庫麪包屑

我試圖創建這裏有一個例子:

  • animals/feline/lion
  • animals/feline/tiger
  • animals/feline/snow-leopard
  • animals/canine/wolf
  • animals/canine/coyote

這兩個genus(貓)和species(獅子)都從數據庫中檢索和animals是一個控制器。我有模型將genusspecies放置在它們各自的陣列中。我也希望有意見沿着麪包屑每個步驟如下:

  • animals
  • animals/feline
  • animals/canine

任何幫助將不勝感激。我只是看着autocrumb,它只是在視圖上顯示麪包屑控制結構,而不是我想要的。

+0

您是否在尋求幫助找到一個可以讓您在控制器中設置麪包屑的麪包屑庫,以便您可以根據數據庫的結果將它們設置爲屬和物種? –

+0

是的,但我不認爲我需要一個圖書館。達到這個最基本的方法是令人滿意的。 – ThomasReggi

+0

Gotcha ...然後我會嘗試Damine Pirsy的解決方案。我認爲這是最好的辦法。 –

回答

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 

難道這就是你要找的人?評論後

編輯:

SO看起來我們已經錯了你想要的東西。如果你從檢索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"; 

如果我是你,我會去了解這種方式。我得到了更好的結果還是我在某個地方仍然錯了?

+0

這種說法有道理,但主要問題是數據庫交互。當這些項目是從數據庫中檢索變量時,您建議我有一個參數$ 1(屬)和參數$ 2(物種)的視圖。我希望爲動物(索引法),動物/屬,和動物/屬/種提供特定的模板。這意味着...數據庫可以包含更多的「動物」(即動物/爬行動物,動物/爬行動物/蛇)等。 – ThomasReggi

+0

呃,實際上,如果你重讀你的問題,看起來像是你提出'我也希望沿着麪包屑的每一步有意見如下: 動物 動物/貓 動物/犬 ',所以我建議相應。這是午夜,想過,所以我可能誤解了 –

+0

非常感謝,其中大部分內容非常有意義,我認爲我現在已經掌握了這個=](第二天用ci&mvc)。現在,當我查詢屬種方法正在控制的物種時。有任何想法嗎? – ThomasReggi

0
redirect('animals/' . $genus . '/' . $species);