2012-08-17 40 views
-1

我需要在CodeIgniter中創建一種類似於CNN文章URL格式的URL格式。在CodeIgniter中創建類似CNN文章URL的URL

http://edition.cnn.com/2012/08/17/world/asia/australia-assange-asylum-ecuador/index.html?hpt=hp_c2

有趣的部分是當然的年/月/日/ SECTION_NAME/ARTICLE_NAME。我能夠重新測試的日期,並結束了與此類URL的:

HTTP://localhost/myapplication/index.php/2012/08/17/1

其中最後的「1」是文章ID。

問題是我的控制器的視圖函數只需要第四個參數(文章ID)來檢索文章,而其他所有參數都被忽略。因此,2014/06/11/1會導致相同的頁面,因爲文章ID是相同的。

我發生了什麼事情,我可以在我的視圖函數中檢索文章日期(因爲我正在從數據庫中檢索文章數據),並根據URL重複檢查它,以確保URL日期有效。我只是想知道這是否是正確的做法,因爲我最終必須對章節標題和文章標題做同樣的事情......

+0

這裏有什麼問題?你想把標題放在URL中?或者是什麼? – ghostika 2012-08-17 11:37:49

+0

Google ['codeigniter sef urls'](http://www.google.com/search?q=codeigniter+sef+urls) – DaveRandom 2012-08-17 11:41:58

+0

問題是實現這個目標的最佳實踐是什麼。我應該手動檢查URL的日期部分以確保文章的日期(儘管文章本身肯定是由於ID是正確的)匹配?然後當我添加章節標題和文章名稱時,我是否也應該手動檢查這些內容?或者還有其他方式可以做到嗎? – PoloRM 2012-08-17 11:42:04

回答

0

好吧,我想現在我越來越了,你的意思是什麼。

您可以創建url,然後通過id從數據庫獲取文檔,或者如果使用slug獲取文檔。如果將日期作爲日期類型存儲在mysql中(如果您使用的是mysql),那麼將它寫入sql查詢以及每個其他條件(如節名稱)也更容易。

+0

您是否認爲我應該將整個字符串(日期/部分/文章名)作爲一個嵌入數據庫,並檢索相應的文章?也不會影響具有100,000個項目的表中的選擇查詢性能嗎? – PoloRM 2012-08-17 12:13:34

+0

不,我以爲只有文章的名字,因爲你寫了,你想用slu。。然後用給定的日期搜索slu,。 – ghostika 2012-08-17 12:25:25