2012-07-16 70 views
2

我正在嘗試創建兩個非常相似並且可以共享相同數據庫表的Yii模型。一個是'問題',一個是'文章'。他們都擁有一個頭銜,身體和作者。 '問題'在表格中有一個額外的字段,'文章'不需要與叫做follow_up進行交互。Yii - 一個控制器多個網址

大多數方法和驗證都是一樣的,但是if語句可以很容易地完成一些微小的差異。我看到的主要問題是URL,我想要單獨的網址,如site.com/question和site.com/article,但讓它們都與相同的模型,控制器和視圖進行交互。

這怎麼辦?

回答

5

在Yii配置中使用urlManager組件設置/ article和/ question的路由到同一個控制器,然後使用不同的操作或不同的參數來區分兩者。既然你說,他們幾乎是相同的,我會如下建議不同的參數和一個動作:

array(
    ... 
    'components' => array(
    ... 
    'urlManager' => array(
     'question/<\d+:id>' => 'mycontroller/myaction/type/question/id/<id>', 
     'article/<\d+:id>' => 'mycontroller/myaction/type/article/id/<id>', 
    ), 
), 
); 

當然,你必須修改爲您的需求,但是這是一般設置。在這裏尋找更多的信息:http://www.yiiframework.com/doc/guide/1.1/en/topics.url