2013-05-08 63 views
0

爲了將活動類應用於導航菜單中的當前項目。我需要檢查,如果其鏈接等於URLCodeIgniter:如何將current_url與視圖URL相匹配(構造導航)

我想是這樣的:

<ul class="nav"> 
    <li class="<?php if(uri_string(current_url()) == base_url() || uri_string(current_url()) == '') echo 'active'; ?>"> 
     <a href="<?php echo base_url() ?>">Home</a> 
    </li> 
    <li class="<?php if(uri_string(current_url()) == base_url('news/create/')) echo 'active'; ?>"> 
     <a href="<?php echo base_url('news/create/') ?>">+ New</a> 
    </li> 
</ul> 

至極似乎好工作與家庭

但在新聞/創建永遠不會等於....

它比較新聞/創建uri_string(current_url())與/消息/創建base_url('news/create')

那麼..什麼是的方式去解決這個問題?

+2

爲什麼不只是做'如果($這個 - > URI-> uri_string()== 'news/create')'? – Mudshark 2013-05-08 14:01:51

+0

看起來更清潔!發佈它作爲答案 – 2013-05-08 15:55:58

+0

剛發佈的答案:) – Mudshark 2013-05-09 16:38:02

回答

3

正如我所說的,一個清潔,簡單的解決方案:

if($this->uri->uri_string() == 'news/create'){ ... 
2

試試這個..

<ul class="nav"> 
    <li class="<?php if(! $this->uri->segment(1) || $this->uri->segment(1) == 'welcome') echo 'active'; ?>"> 
     <a href="<?php echo base_url() ?>">Home</a> 
    </li> 
    <li class="<?php if($this->uri->segment(1) == 'news' && $this->uri->segment(2) == 'create') echo 'active'; ?>"> 
     <a href="<?php echo base_url('news/create/') ?>">+ New</a> 
    </li> 
</ul> 
+0

好吧,它的工作原理!你認爲它是一個乾淨的方式來做到這一點? – 2013-05-08 14:00:47

+0

這很簡單..這就是重要的;) – user20232359723568423357842364 2013-05-08 14:01:36

+0

我同意他/她。你只需要知道哪個控制器和動作被調用! – 2013-05-08 14:12:20