如何返回控制器变量和查看HTML内容作为ajax json响应


how to return both controller variables and view html contents as ajax json response

我使用CakePHP和使用MVC标准。

我正在使用ajax发送请求,并需要以与tweeter响应相同的方式响应,请参阅下面的tweeter示例响应。

Like tweeter发送:

{
"user_id":"155dsfds95",
"html":" 'u003Cdiv class='"module profile-card component profile-header'" data-component-term='"profile_follow_card'" 'u003E'n ",
"screen_name":"abc"
}

我需要从控制器发送user_idscreen_name,从视图发送html内容。

我的回复数据如下:

$response['user_id'] = $id;
$response['screen_name'] = 'some_name';

现在我可以发送user_idscreen_name作为json_encode($response)

但是我如何在data索引中发送视图内容?

我不想在控制器中制作html内容,而应该来自视图

您可以轻松地从控制器呈现当前视图并返回JSON响应。

工作的例子:

public function index() {
    $response = $this->render();
    $data = array(
        'json_key_1' => 'value1',
        'json_key_2' => 123,
        'action_html' => $response->body()
    );
    $options = array(
        'type' => 'json',
        'body' => json_encode($data)
    );
    return new CakeResponse($options);
}