2017-04-27 104 views
0

我不能說明如何在codeIgniter 3中進行自定義路由嗎?CodeIgniter 3中的自定義路由

e.g我已經控制器命名「用戶」,它有一個名爲方法「文章」這需要一個參數「$ id爲」

所以我的路線是:/用戶/條/ 40

但我想要做的是這樣的:/新聞/技術等

回答

1

那麼,你可以嘗試這樣的

$route[‘news’] = 「categories/show/3」; 

這裏我假設你有一個控制器categories和方法show3是參數

$route[‘news/technology’] = 「categories/show/10」; 

這裏我假設你有一個控制器categories和方法show10是參數。這意味着您顯示的是父類別的子類別technologynews

或者您可以在數據庫字段中使用slug並將其映射到您的控制器中。

感謝

0

所以這裏是我的解決方案:

在我型號文件我改變paramater搜索「標題」,而不是「ID」 所以在型號代碼將

->where(['category_name' => $id]) 

查看我更改了錨標記中的網址從

<?= anchor("user/category/{$article->category_name}",$article->category_name) ?> 

<?= anchor("{$article->category_name}",$article->category_name) ? 

終於在routes.php文件文件

$route['(:any)'] = '/user/category/$1'; 

所以現在我URL

newsPortal/Technology 

它的工作完美的我。如果你想更多的解釋請在下面評論。我認爲這非常簡單。

+0

當您將新聞存儲到數據庫中時,將[slug](https://en.wikipedia.org/wiki/Semantic_URL)存儲在一個字段中(確保其在數據庫中具有唯一值)。這樣你可以避免以後的空間問題,特殊字符等。因此,而不是查詢數據庫的標題,你會查詢數據庫的slu。。 – Tpojka

+0

謝謝!我將在未來的項目中這樣做。 – naan

+1

您可以使用CI內置[功能](https://www.codeigniter.com/user_guide/helpers/url_helper.html#url_title)。 – Tpojka