解决了我自己的问题。 ajax问题是由于我调整了(打破)了我的urlManager规则。我更改了原始规则以适应表上的非数字主键。例如,要观察病人的网址应该https://web/patients/view/ABC_1234代替https://web/patients/view/1234
我倾向于使用现有的我的客户数据库架构设置现在的样子,他们正在使用一个非数字的主键在可能和DB模式。我想继续这个由于某些原因,所以我不得不编辑url params \ d只匹配数字。不幸的是,将它改为\ w也匹配了一些Ajax请求,并且破坏了整个事情。
Yii原始规则。工作正常,但对于字母数字的主键不起作用:
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
首先,我把它改成下面,处理字母数字外键,但是这打破了一些Ajax:
'rules'=>array(
'<controller:\w+>/<action:\w+>/<id:\w+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
'/gii'=>'/gii/default/login',
),
最后到达以下,这使得AJAX模块正常运行,并处理我的非数字键:
'rules'=>array(
'/libraries/<action:\w+>/<id:\w+>'=>'/libraries/<action>',
'/patients/<action:\w+>/<id:\w+>'=>'/patients/<action>',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
我最终明确设置规则只为需要它的控制器。他们大多数使用整数主键
希望这可以帮助别人。我是Yii的新手,当我改变规则时,并没有完全理解Yii中的规则和ajax系统。
干杯
恭喜您!如果可以,请确保将您的答案标记为“已接受”,以便其他人能够从您的成功中学习。干杯〜 – 2012-04-25 16:14:44
感谢您的提示。 – glyph 2012-04-26 14:29:05