如何修改 yii 以接受负记录 ID


How can I modify yii to accept negative record ids?

我正在尝试为现有数据库设置一个 yii 前端。根据历史,它有几个带有负 ID 的表 - 有一组很好的连续 ID 从 1 开始,但也有一大组具有大的正 ID 和负 ID。不,我不知道为什么。

当使用 yii 从列表中检索这些记录之一(所有原版 yii)时,URL 类似于 http://myyiipath/index.php/houses/-75313 。然后,这将返回一个错误页面,指出"找不到请求的操作"。当给定有效的正 ID 时,它可以检索记录的详细信息。

我知道 yii 在选择操作时使用-作为分隔符,所以我猜负值被解释为 blank:id。

那么我可以在没有指定控制器时修改 yii 以使用默认操作(带有符号值),或者我可以将默认操作定向到某个处理程序,还是这一切都是一场噩梦?

你将不得不改变

<id:'d+>

<id:'-?'d+>

在您的网址管理器规则中。

例:

'<controller:'w+>/<action:'w+>/<id:'-?'d+>' => '<controller>/<action>',
'<controller:'w+>/<action:'w+>' => '<controller>/<action>',
'<controller:'w+>/' => '<controller>/index',