Yii-一个控制器多个url



我正在尝试创建两个非常相似的Yii模型,它们可以共享同一个数据库表。一个是一个"问题",一个是"文章"。他们都有一个共同的头衔、身体和作者Question在表中有一个名为follow_up的附加字段,"article"不需要与该字段交互。

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

如何做到这一点?

使用Yii配置中的urlManager组件设置/article和/aquestion到同一控制器的路由,然后使用不同的操作或不同的参数来区分两者。既然你说它们几乎相同,我建议不同的参数和单一的操作如下:

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

最新更新