我正在尝试在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);
}
}
答案 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']);