我想要做的是从我的控制器返回json,这是我的控制器:
class BooksController extends Controller{
public function getIndex(){
return View::make('books.index');
}
public function getBooks(){
$books = array('Alice in Wonderland','Tom Sawyer','Gulliver\'s Travels','Dracula','Leaves of Grass');
return Response::json($books);
}
}
这是我的路线:
Route::controller('books', 'BooksController');
这是我的观点:
<html>
<head>
<meta charset=utf-8 />
<title>Show Books</title>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>
<a href="#" id="book-button">Load Books</a>
<div id="book-list"></div>
<script>
$(function() {
$('#book-button').on('click', function(e) {e.preventDefault();
$('#book-list').html('loading...');
$.get('books/books', function(data) {var book_list = '';
$.each(data, function(){
book_list += this + '<br>';
})
$("#book-list").html(book_list);
$('#book-button').hide();
});
});
});
</script>
</body>
</html>
当我加载视图并点击&#34;加载图书&#34;按下javascript只显示&#34; loading ...&#34;,没有来自控制器的数据出现。我的代码有什么问题?帮帮我吧。感谢
答案 0 :(得分:0)
您可以这样使用:
也尝试使用dd($ books);查看arry是否正常并使用console.log(data)查看json
return response() - &gt; json(['name'=&gt;'Abigail','state'=&gt;'CA']);
并在js方面:
data.name或data.state
请记住,如果你在json中返回数组,你需要迭代id