はじめに
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/