mardi 27 mars 2018

Laravel ApiException returning HTML repsonse and not JSON

I'm trying to figure out why my ApiException is still returning a text/html response instead of a json response as denoted in ApiException render method. It is giving me the correct error message however its not rendering it as json.

/**
 * Get the checklist (depending on type - send from Vue model)
 */
public function fetchChecklist(Request $request)
{
    $id = $request->input('projectId');
    $type = $request->input('type');

    if (empty($id)) {
        throw new ApiException('Project was not provided.');
    }

    if (! $project = RoofingProject::find($id)) {
        throw new ApiException('Project not found.');
    }

    if (empty($type)) {
        throw new ApiException('No checklist type was provided.');
    }

    switch ($request->input('type')) {
        case 'permitting':
            $items = $project->permittingChecklist;
            break;

        case 'permit':
            $items = $project->permitReqChecklist;
            break;

        default:
            throw new ApiException('Checklist not found.');
            break;
    }

    return [
        'status' => 'success',
        'message' => '',
        'items' => $items
    ];
}


<?php

namespace App\Exceptions;

class ApiException extends \Exception
{
    public function render($request, \Exception $exception)
    {
        return response()->json(['status' => 'error', 'error' => $this->message]);
    }
}



from Newest questions tagged laravel-5 - Stack Overflow https://ift.tt/2GcbhLM
via IFTTT

Aucun commentaire:

Enregistrer un commentaire