如果您认为问题出在服务器端,您可以在配置文件中打开跟踪日志记录(默认为 protected/config/main.php):
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class' => 'CFileLogRoute',
'levels' => 'error, warning, trace'
),
),
),
并在你的扩展中添加一些 Yii::trace() 调用:
class MyExtension {
public function whatever() {
Yii::trace("Inside MyExtension::whatever()", "MyExtension");
// do some stuff
Yii::trace("Inside MyExtension::whatever(), just did some stuff.", "MyExtension");
}
}
这会将跟踪调用插入到您的 application.log 文件中(默认情况下,它位于 protected/runtime/application.log 中)。它们看起来像这样:
2013/02/21 15:35:43 [trace] [MyExtension]
/path/to/MyExtension.php (3) 中的 MyExtension::whatever() 2013/02/21 15:35:43 [trace] [MyExtension ] 在 MyExtension::whatever() 中,只是在 /path/to/MyExtension.php (5) 中做了一些事情
将您需要的任何内容放入痕迹中。我首先要确保您认为您从浏览器发送的数据实际上正在以您期望的形式到达它打算到达的功能。如果那里一切正常,那么是时候启动网络检查器(我更喜欢 Chrome)并观看“网络”选项卡。查看对服务器的请求和传递的响应。还要检查 JS 控制台以确保那里没有任何问题。