Laravel 4如何使用ajax和json返回多个视图数据?

时间:2013-11-24 12:44:25

标签: php jquery ajax json laravel

基本上我正在尝试使用这个ajax进行弹出:

$.ajax({
    type: 'GET'
    url: 'news/read'
    dataType: 'json'
    cache: false
    timeout: 10000
}).done (msg) ->
    $("article#pop-read").empty().html msg.view
    processing = false
    window.history.pushState
        path: msg.url
        , "", msg.url
    false

我正在返回一个视图值,它的网址是:

$data = json_encode(array(
        'view' => View::make('layouts.read'),
    'url' => 'news/read/2013/11/24/test-title-seperate-with-dash'
));
return $data;

这一切都很有效,除了我无法从laravel获取视图值(它在javascript中返回Object object)。但如果我像return View::make('layouts.read')那样直接写它,它会很好地返回。那是为什么?

另外(不必回答,不是主要问题),当我使用pushState时,浏览器上的后退按钮不起作用,这是一个错误吗?

1 个答案:

答案 0 :(得分:14)

你可以试试这个

$data = json_encode(array(
    'view' => (String)View::make('layouts.read'),
    'url' => 'news/read/2013/11/24/test-title-seperate-with-dash'
));
return $data;

此外,您可以使用

View::make('layouts.read')->render();
View::make('layouts.read')->__toString();

此外,Laravel提供Response::json()方法的原因相同(而不是json_encode)。