1

我安装了 importcsv 模块,并且 importcsv 页面加载正常。当我加载url - https://web/importcsv时出现文件上传按钮

我上传了一个文件,出现了 ajax“加载”文本,但是 ajax 响应结果是我网站的整个布局和默认的 importcsv 上传页面,而不是我假设应该加载到 importCsvFirstStepResult div ( “下一步”字段),在 download.js 中的 ajax 请求完成后

 ...
   onComplete : function(file, response) {
        this.enable();
        $("input#fileName").val(file);
        $("div#importCsvFirstStepResult").html(response);
    }

/importcsv/default/upload ajax 响应显然包含错误的布局,未能检测到请求,或者 ???? 并将默认视图加载到响应 div、菜单和所有内容中。我对 Yii 很陌生,所以也许这很明显有人在那里。

感谢你的协助。

4

1 回答 1

2

解决了我自己的问题。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 系统并不完全了解。

干杯

于 2012-04-25T15:31:09.353 回答