我试图用Laravel5中的json数组响应json。
namespace App\Http\Controllers;
use Illuminate\Routing\ResponseFactory;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Event;
class EventsapiController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
$events = Event::All();
return Response::json([
'data'=>$events
],200);
}
}
它给我这个错误
Call to undefined method Illuminate\Http\Response::json() in Laravel5
那么我们如何在Laravel 5中传递json? ,我已经知道laravel自动返回json数组,但我不想这样做
谢谢
答案 0 :(得分:14)
您正在使用:
照亮\ HTTP \响应
并且应该使用它:
\响应
类型:
use Response;
不要输入:
use Illuminate\Http\Response;
答案 1 :(得分:10)
return response()->json(['data'=>$events]);
请参阅\Illuminate\Routing\ResponseFactory中的文档:
/**
* Return a new JSON response from the application.
*
* @param string|array $data
* @param int $status
* @param array $headers
* @param int $options
* @return \Illuminate\Http\JsonResponse
*/
public function json($data = [], $status = 200, array $headers = [], $options = 0)
{
if ($data instanceof Arrayable && ! $data instanceof JsonSerializable) {
$data = $data->toArray();
}
return new JsonResponse($data, $status, $headers, $options);
}
答案 2 :(得分:0)
如果返回数据,则只需从控制器方法返回一个数组,该数组将呈现为JSON。您可以返回
T