Laravel中的自动更新页面

时间:2018-02-14 12:21:10

标签: php jquery laravel laravel-5

我是Laravel的新手,我正在制作一个页面admin.blade.php,它将从数据库中显示用户的数据,并在新用户注册时自动更新,这不是问题所在。我的观点是更新管理页面,这样做我正在使用jQuery,它将从demo.admin.php获取数据并更新管理页面

demo.blade.php

<table class="table table-bordered" id="result">
    <thead>
        <tr>
            <th>Id</th>
            <th>Name</th>
            <th>Email</th>
        </tr>
    </thead>
    <tbody>
    @foreach($users as $value)
        <tr>
            <td>{{ $value->id }}</td>
            <td>{{ $value->name }}</td>
            <td>{{ $value->email }}</td>
        </tr>
    @endforeach
    </tbody>
</table>

admin.blade.php

<script>
 $(document).ready(function() {
  setInterval(function() {
   $('#res').load('demo.blade.php');
  }, 100);
 });
</script>

DemoController

public function index()
{
    $users = DB::table('users')->select('id','name','email')->get();
    return view('demo')->with('users', $users);
}

AdminController

public function index()
{
    // return view('admin');
    $users = DB::table('users')->select('id','name','email')->get();
    return view('admin')->with('users', $users);
}

Plz,帮助我。当我打开管理页面时。桌子没有显示。

1 个答案:

答案 0 :(得分:0)

正如其他人在评论中指出的那样,您无法指向view,因为它不是有效的网址。 jQuery的load()方法需要一个指向资源的有效URL。 http://api.jquery.com/load/

假设您的JS嵌入在Blade文件中,您可以使用{{ action('DemoController@index') }}

<script>
 $(document).ready(function() {
  setInterval(function() {
   $('#res').load('{{ action('DemoController@index') }}');
  }, 5000);
 });
</script>