解决了我自己的问题。ajax 问题是由于我调整(破坏)了我的 urlManager 规则。我更改了原始规则以适应表上的非数字主键。例如,查看患者的 url 将是https://web/patients/view/ABC_1234而不是https://web/patients/view/1234
我倾向于尽可能使用现有的数据库架构,并且我的客户数据库架构现在设置的方式,他们使用的是非数字主键。由于某些原因,我想继续这样做,所以我不得不编辑 url 参数,因为 \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 系统并不完全了解。
干杯