Laravel使用ajax刷新数据库记录更新页面

时间:2016-05-29 19:23:55

标签: php jquery mysql ajax laravel

我有一个包含4列的mySQL表。其中一个是来自timestamps()的updated_at()。 任何人都知道如何检测updated_at列何时更改并使用ajax更新某个特定页面?

我知道更好的方法是使用网络套接字,但对于我的项目来说有点矫枉过正。项目在 laravel 5.2

2 个答案:

答案 0 :(得分:1)

您可以使用Model Events检测何时更新模型 但我不知道如何在没有Web套接字的情况下从PHP脚本刷新html页面。

修改

尝试

Route::get('checkIfModelUpdated/{id}', function($id) {
    $model = YourModelClass::find($id);
    $updatedAt = Request::get('updated_at');
    return json_encode($model->updated_at->gt($updetedAt));
});

和客户端代码

setInterval(function() {
       $.get('/checkIfModelUpdated/'+YOUR_MODEL_ID,
       {updated_at: LAST_UPDATED_AT},
       function(data) {
           if (JSON.parse(data) == true) 
                // refresh your page
       });
   }, 1000); 

答案 1 :(得分:1)

没有网络套接字,唯一的方法是在后台运行Javascript setInterval并运行对Laravel API的ajax调用。 API将检查是否有任何更改并响应更新,这些更新将由您的ajax回调接收并应用于该页面。