Laravel实时更新模型

时间:2014-02-28 14:52:35

标签: javascript php jquery ajax laravel-4

我有一个网站,在加载一系列帖子后会显示, 这些是通过控制器发送到页面的以下返回:

return View::make('stream')->with($this->postStream());

postStream只是我所有的postModel的获取(eloquent)

现在当页面加载时,我很乐意附加自你加载页面后所做的所有新帖子而不刷新,现在这将发生在AJAX上(我不认为这可以做到其他)

所以我写了以下内容:

setInterval(function() {
    $.ajax({
        url: 'stream',
        type: 'post',
        cache: false,
        success: function(data) {
            stream = data;
        },
        error: function() {
            alert('Something went to wrong.Please Try again later...');
        }
    })

    console.table(stream.posts);

;},1000 * 60); // every minute

这可以获得适量的帖子,但我无法获取帖子的内容。执行console.table(stream.posts);

时会显示以下内容
+-----------+--------------+------------------+------------+
|  (index)  | timestamps   |   incrementing   |   exists   |
+-----------+--------------+------------------+------------+
|    0      |    true      |      true        |    true    |
|    1      |    true      |      true        |    true    |
|    2      |    true      |      true        |    true    |
+-----------+--------------+------------------+------------+

我怎样才能从我的数据中获取这些数据?

1 个答案:

答案 0 :(得分:1)

如果您正在使用Ajax,则必须使用return Response :: json。

你可以尝试

控制器:

if (Request::ajax()) {
        return Response::json(array('id' => $id,...));
    }

return View::make('stream')->with($this->postStream());

视图:

console.log(data);