我正在尝试创建两个非常相似的Yii模型,并且可以共享相同的数据库表.一个是"问题",一个是"文章".他们都分享标题,正文和作者."问题"在表格中有一个附加字段,"文章"不需要与名为follow_up的交互.
大多数方法和验证是相同的,但是使用if语句可以轻松完成一些微小的差异.我看到的主要问题是URL,我想要单独的URL,如site.com/question和site.com/article,但让它们都与相同的模型,控制器和视图进行交互.
如何才能做到这一点?
使用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