0

我很难弄清楚如何从位于视图中的控制器中的以下代码中获取响应:

   if ($this->request->isAjax()){
        Configure::write ( 'debug', 0 );
        $this->autoRender = 0;
        $this->layout = 'ajax';
        $results = "My Data";
        echo json_encode($results);
    }

    //tried doing this and it doesn't work
    $this->set('results',$results);

我只想能够在我的视图中访问 $results 变量中的数据。

4

1 回答 1

0

如果这是您的整个方法,那么您的视图中没有显示任何内容是合乎逻辑的。由于您已禁用自动渲染:

$this->autoRender = 0;

您需要在某些时候手动渲染您的视图,使用:

$this->render('view');

view您要渲染的视图的实际名称在哪里。否则,您只会得到一个空白页。

另请注意,您在检查中进行设置$resultsisAjax()但您将其设置为检查之外的视图,因此如果对控制器操作进行“常规”调用(非 ajax),您将收到未定义的变量错误。

于 2013-01-08T21:52:51.460 回答