【问题标题】:Ajax GET request Laravel 5.2Ajax GET请求Laravel 5.2
【发布时间】:2016-09-21 04:00:11
【问题描述】:

我的 routes.php 中有以下内容:

  Route::get('/displayphotos', function()
  {
    return view('displayphotos')->with('photos', photo::all());
  });

我基本上有一个 javascript 代码部分,它最初使用 displayphotos 路由使用 photo::all() 返回的 $photos... 这确实有效。 我有这个以 10000 的间隔运行。

   setInterval(function() {
      _.forEach({!! $photos !!}, function(value, key) {
        photos_array.push(value.name);
      });

      photos_array = _.uniq(photos_array);

      More code here...

      }, 10000);

所以基本上我想要完成的是让 $photos 在间隔开始时在此处刷新,它将从存储在数据库中的 $photos 中获取最新值。我假设这意味着我需要以某种方式使用 GET 发出 ajax 请求?我需要为此添加一个控制器方法吗?还是可以以某种方式内联完成?

谁能帮助我完成我的要求?

【问题讨论】:

  • 想象页面请求:))

标签: javascript jquery ajax laravel laravel-5.2


【解决方案1】:

使用 AJAX 请求,因为 php 代码在服务器端执行,而您的 UI 在客户端,所以操作都只运行一次。

你可以试试这个:

 Route::get('/displayphotos', function()
 {
   return json_encode(photo::all());
 });

显示一个 JSON 数组并使用 AJAX 请求来消费每个间隔

【讨论】:

  • 好的,这似乎确实有效,但遇到了问题:$.ajax({ url: 'photos_json', success: function(data) { photos = data; console.log(photos); _ .forEach(photos, function(value, key) { photos_array.push(value.name); }); 我的问题是照片似乎不是一个 json 对象或者它在 lojax 中变得未定义的东西
  • @AlexWinter 你的网址是displayphotos 不是photos_json
  • 我明白了。我添加了 photos_json 路线。只需添加 JSON.parse 即可将返回的字符串转换为对象。现在用 laravel/javascript 生锈了,谢谢你的帮助!
  • json_encode 在这里不是必需的。 Laravel 会为您将其转换为 json,所以只需 return Photo::all();
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-17
  • 2016-11-21
  • 2021-03-11
  • 1970-01-01
  • 1970-01-01
  • 2018-12-22
  • 2014-05-12
相关资源
最近更新 更多