如何设置控制器返回json(Laravel 5)

时间:2015-10-23 02:24:14

标签: javascript php json laravel

我想要做的是从我的控制器返回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;,没有来自控制器的数据出现。我的代码有什么问题?帮帮我吧。感谢

1 个答案:

答案 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