我不能說明如何在codeIgniter 3中進行自定義路由嗎?CodeIgniter 3中的自定義路由
e.g我已經控制器命名「用戶」,它有一個名爲方法「文章」這需要一個參數「$ id爲」。
所以我的路線是:/用戶/條/ 40
但我想要做的是這樣的:/新聞/技術等
我不能說明如何在codeIgniter 3中進行自定義路由嗎?CodeIgniter 3中的自定義路由
e.g我已經控制器命名「用戶」,它有一個名爲方法「文章」這需要一個參數「$ id爲」。
所以我的路線是:/用戶/條/ 40
但我想要做的是這樣的:/新聞/技術等
那麼,你可以嘗試這樣的
$route[‘news’] = 「categories/show/3」;
這裏我假設你有一個控制器categories
和方法show
和3
是參數
$route[‘news/technology’] = 「categories/show/10」;
這裏我假設你有一個控制器categories
和方法show
和10
是參數。這意味着您顯示的是父類別的子類別technology
news
或者您可以在數據庫字段中使用slug並將其映射到您的控制器中。
感謝
所以這裏是我的解決方案:
在我型號文件我改變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
它的工作完美的我。如果你想更多的解釋請在下面評論。我認爲這非常簡單。
當您將新聞存儲到數據庫中時,將[slug](https://en.wikipedia.org/wiki/Semantic_URL)存儲在一個字段中(確保其在數據庫中具有唯一值)。這樣你可以避免以後的空間問題,特殊字符等。因此,而不是查詢數據庫的標題,你會查詢數據庫的slu。。 – Tpojka
謝謝!我將在未來的項目中這樣做。 – naan
您可以使用CI內置[功能](https://www.codeigniter.com/user_guide/helpers/url_helper.html#url_title)。 – Tpojka