如何在laravel中返回json响应

Posted

技术标签:

【中文标题】如何在laravel中返回json响应【英文标题】:how to return json response in laravel 【发布时间】:2017-03-25 01:27:04 【问题描述】:

这是我的控制器:

public function index(Request $request)
    
        $items = Post::latest()->paginate(5);
        $cmnt = Comment::all();

        return response()->json(array('posts'=>$items,'comment'=>$cmnt));
    

这是我的 ajax 请求

function getPageData() 
      $.ajax(
        dataType: 'json',
        url: "route('post_status.index')",
        data: page:1
      ).done(function(data)
            manageRow(data.data);
      );
    
function manageRow(data) 
          console.log(data.comment);

为什么我会出错?? 请帮我解决这个问题

【问题讨论】:

“为什么我会出错”什么错误? 实际上它什么也没告诉我.....没有任何价值 @leo 你试过在控制台中查看吗?在您对答案的评论中,您还谈到了多个对象?你能解释一下你在你的问题中想要做什么吗? 我想使用 ajax 响应从我的控制器返回 $items 和 $cmnt 这两个对象 【参考方案1】:

laravel 如果不返回视图,默认返回 json,在你的情况下 index() 应该返回:

return ['posts' => $items,'comment' => $cmnt];

我也不认为这是正确的

route('post_status.index')

应该是

 url('post_status/index') 

【讨论】:

当我返回一个对象时路由是好的,但是当我想返回多个对象时它不起作用【参考方案2】:

您可以使用来自服务器的响应类型。

function getPageData() 
    $.ajax(
      dataType: 'json',
      url: "route('post_status.index')",
      type: 'GET'
      data: page:1
    ).done(function(data)
        manageRow(data.data);
    );


function manageRow(data) 
    console.log(data.comment);

【讨论】:

以上是关于如何在laravel中返回json响应的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 4 返回 json 作为响应

如何在 PHPUnit 中控制台/检查 Laravel 资源的 JSON 响应?

Laravel json() 响应返回值两次

如何从 Laravel5 中的 json 类型响应中获取值

Laravel 控制器返回索引视图而不是 json 响应

Laravel 8:如何使用邮递员发送 JSON 格式的验证响应