Help us understand the problem. What is going on with this article?

Laravelでabortをつかってjsonを返す

More than 1 year has passed since last update.

はじめに

LaravelではabortというHTTP例外を投げるヘルパが存在します
https://readouble.com/laravel/6.0/ja/errors.html#http-exceptions

通常のHTTP例外を返すのによく使われていますが、jsonの例外を投げるのにも使えることを知ったのでそのメモです

jsonによる例外

結論から言うとresponseインスタンスからjsonを作ってそれをそのままabortに食わっせるだけでおkです

独自で例外作ってhanderに食わせるのもなーってときに使えるのはとても便利
abort全般で使えます

abort(response()->json(['message' => 'error!'], 400));

abort_if('hoge' === 'hoge', response()->json(['message' => 'error!'], 400));

abort_unless('hoge' !== 'hoge', response()->json(['message' => 'error!'], 400));

responseで渡すゆえにステータスコードの位置が変わるのがわかりにくい

あとがき

検証したのは6.1ですが、5.6以降でもできるようです
詳しい部分は下記参照で(まるなげ)
https://cpoint-lab.co.jp/article/201903/8753/

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away