2013-04-03 47 views
1

Yii擅長的一件事是創建內容管理系統和類似的動態。這些系統通常具有輕量和可擴展性,因爲它們利用Yii框架並僅使用所需的功能,這些功能無法通過使用諸如Drupal等架構的開源CMS解決方案來實現。Yii - 多個URL映射到單個控制器/動作

我過去曾經這樣做過,但是很簡單。例如,用戶可以編輯內容,但是我已經對控制器/操作/視圖文件進行了硬編碼,並將內容發送到每個頁面。

我該如何去改進我的內容管理系統的創建,並允許以編程方式創建頁面?我想這樣做,用戶可以創建一個新頁面並指定一個URL。

我想要重複使用相同的控制器,並根據用戶選擇將其映射到不同的視圖文件,但我願意解決這個問題的其他方法,我認爲其他人必須解決這個問題。

此外,允許用戶指定一個URL是一個重要的功能,該如何傳遞?

對長文本問題的道歉。我想不出如何以任何其他格式適當地捕捉我的用例。

在此先感謝。

+0

不是一個真正的問題,也不是建設性的...你應該添加更多關於你現有的模型/視圖/控制器的細節。 – soju

回答

0

常用的選項是將URI存儲在數據庫中。 與用戶內容在同一行,或創建一個表來存儲URI和id引用用戶內容。

當請求發出時,只需從數據庫中提取所請求的uri數據(因爲uri不是動態的,甚至是這樣),並顯示內容 (我認爲WP做了類似的事情,但也是企業系統),

當然

,緩存很好:)

+0

感謝您的回答。請你可以擴展存儲URI。我對此並不熟悉,聽起來應該是這樣。 – goose

1

創建表調用,例如,users_articles_uris

該表將包含主鍵和URI本身(例如my-cool-title-for-something)。 未來,它將變爲:yoursite.com/my-cool-title-for-somethingyousite.com/controller/action/<users_special_uri>

通過.htaccess或與Yii的路由,你會:

  1. 獲取URI;
  2. 找到數據庫中;
  3. 獲取文章的ID;
  4. 找到文章;
  5. 打印您需要的數據。
相關問題