【发布时间】:2014-05-24 02:18:24
【问题描述】:
如果有具有此索引功能的控制器:
public function getIndex() {
return View::make('web.index')
->with('projects', Project::orderBy('id', 'DESC')->paginate(8));
}
在我看来有foreach循环
@foreach($projects as $project)
<a href="like/{{$project->id}}" class="action like {{$liked}}">
{{$project->likes}}
</a>
@endforeach
<div class="pagination">
{{$projects->links()}}
</div>
getLike 函数:
public function getLike($id) {
if(Cookie::get('like_'.$id) != 'true')
{
$project = Project::find($id);
$project->increment('likes');
$cookie = Cookie::forever('like_'.$id, 'true');
$s = array(
'status' => 'success'
);
$response = Response::json($s);
$response->headers->setCookie($cookie);
return $response;
}
$response = array(
'status' => 'error'
);
return Response::json( $response );
}
Ajax 请求:
$(".like").on("click", function(){
$.get(
$( this ).prop( 'href' ),
{
},
function( data ) {
if(data['status'] == 'error')
{
alert("Already Liked");
}
else {
alert('Like');
}
},
'json'
);
return false;
});
在第一页中,getLike() 函数完美运行!(我使用 ajax 收集数据),但是当第 2 页重新加载(我使用无限滚动)时,getLike 函数返回带有 json 文本的空白页。 帮助...
【问题讨论】:
-
您是否启用了错误报告和显示错误? AJAX 请求(浏览器控制台)返回什么?检查您的 ajax 请求的响应状态。
-
@Rolice 是的,在我的 app.php 中我设置了 'debug' => true,这是 Ajax 请求:$(".like").on("click", function(){ $ .get( $( this ).prop( 'href' ), { }, function( data ) { if(data['status'] == 'error') { alert("Already Liked"); } else { alert ('喜欢'); } }, 'json' ); return false; });
-
响应状态呢?
-
@Rolice 在带有 json 数据的空白页中我得到的状态是:{"status":"success"} 数据库增量工作,但为什么我得到空白页?
-
听起来像一个严重错误。空白页可能意味着 laravel 无法处理它。据我了解,ajax 工作正常。放入您的控制器文件,靠近第一行(在类定义之前):
error_reporting(E_ALL); ini_set('display_errors', 'yes');- 不要忘记稍后将其删除。如果有报告,请粘贴到此处。
标签: php json laravel laravel-4 pagination