Yii - 一个控制器多个网址

时间:2012-07-16 05:59:07

标签: yii

我正在尝试创建两个非常相似且可以共享同一数据库表的Yii模型。一个是“问题”,一个是“文章”。他们都分享标题,正文和作者。 “问题”在表格中有一个附加字段,“文章”不需要与名为follow_up的交互。

大多数方法和验证都是相同的,但是使用if语句可以轻松完成一些微小的差异。我看到的主要问题是URL,我想要像site.com/question和site.com/article这样的单独网址,但是它们都与相同的模型,控制器和视图进行交互。

如何做到这一点?

1 个答案:

答案 0 :(得分: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