Yii - 一个控制器多个网址

Fit*_*man 2 yii

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

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

如何才能做到这一点?

Ans*_*ari 5

使用urlManagerYii配置中的组件将/ 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>',
    ),
  ),
);
Run Code Online (Sandbox Code Playgroud)

当然,您必须根据需要修改它,但这是一般设置.请点击此处获取更多信息:http://www.yiiframework.com/doc/guide/1.1/en/topics.url