Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Call to undefined method Illuminate\Http\Response::json() in Laravel5

I am trying to response a json with the json array in Laravel5

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);

    }
}

Its giving me this error

Call to undefined method Illuminate\Http\Response::json() in Laravel5

So how do we pass json in Laravel 5 ? , I Already know laravel returns automatically json array but I don't want to do that

Thanks

like image 931
Vikram Anand Bhushan Avatar asked Dec 09 '15 12:12

Vikram Anand Bhushan


1 Answers

Try the helper function:

return response()->json(['data'=>$events]);

See the docs in \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);
}
like image 118
Peter Kota Avatar answered Sep 16 '22 18:09

Peter Kota