Comment retourner 403 réponse au format JSON dans Laravel 5.2?

Je suis en train de développer une API RESTful avec Laravel 5.2. Je suis tombé sur la façon d'échec d'autorisation au format JSON. Actuellement, il est en train de jeter les 403 page d'erreur au lieu de JSON.

Contrôleur: TenantController.php

class TenantController extends Controller
{
    public function show($id)
    {
        $tenant = Tenant::find($id);
        if($tenant == null) return response()->json(['error' => "Invalid tenant ID."],400);
        $this->authorize('show',$tenant);
        return $tenant;
    }
}

Politique: TenantPolicy.php

class TenantPolicy
{
    use HandlesAuthorization;
    public function show(User $user, Tenant $tenant)
    {
        $users = $tenant->users();
        return $tenant->users->contains($user->id);
    }
}

L'autorisation est actuellement en train de travailler très bien, mais c'est en montrant un 403 forbidden page au lieu de renvoyer du json en erreur. Est-il possible de la remettre en JSON pour la 403? Et, est-il possible de faire à l'échelle mondiale pour tous échoué autorisations (et pas seulement dans ce contrôleur)?

Je voudrais utiliser une 3ème partie de la bibliothèque comme dingo/api. Il a traité ce pour vous, ainsi que la gestion des versions et des transformateurs. github.com/dingo/api

OriginalL'auteur Heru S | 2016-07-26