以json格式返回雄辩的集合

时间:2014-05-25 15:53:44

标签: json angularjs rest laravel eloquent

我正在尝试在Laravel中实现RESTful api,而对于我的索引,我想将所有任务作为json返回。

然而,当我使用

return Response::json(Task::all());

我收到错误:“Response内容必须是实现__toString()的字符串或对象,”boolean“给出”。

我使用时遇到同样的错误:

  

返回Task :: all();

我认为这应该有用吗?我做错了什么?

我仔细检查以查看Task :: all()是否实际返回任何内容,并且确实如此。这个代码在另一个项目中工作,虽然在另一个服务器上,也许是另一个php版本?

有人建议使用toArray(),但我得到的结果相同。代码:

<?php

class UserController extends BaseController {

    public function index() {
        $users = User::all();
        $userArray = $users->toArray();
        return Response::json($userArray);
    }

}

1 个答案:

答案 0 :(得分:2)

Response :: json函数期望参数1是一个数组。来自API:

json( string|array $data = array(), integer $status = 200, array $headers = array() )
Return a new JSON response from the application.

所以你不能只是通过你的find的结果,而是使用toArray()函数并传递它:

$tasks = Task::all();
Response::json($tasks->toArray());

编辑---

如果你正在使用BLOB,那么首先对它进行base64_encode。请参阅this帖子。

示例:

base64_encode($user['image']);