人気のPHP WEBアプリケーションフレームワークLaravelのTips。 (Laravelアプリの初期化)composer create-project laravel/laravel my-app

laravelでapiの文字化けを解消する

● API用のコントローラーにエスケープしないで返すメソッドをTraitで作成する

app/Http/Controllers/Api/JsonResponseTrait.php

<?php

namespace App\Http\Controllers\Api;

trait JsonResponseTrait
{
  /**
   * JSON_UNESCAPED_UNICODE オプションを使用して JSON レスポンスを返す
   *
   * @param mixed $data
   * @param int $code
   * @return \Illuminate\Http\JsonResponse
   */
  public function unescapedJsonResponse($data, $code = 200)
  {
    return response()->json(
      $data,
      $code,
      ['Content-Type' => 'application/json;charset=UTF-8', 'Charset' => 'utf-8'],
      JSON_UNESCAPED_UNICODE
    );
  }
}

● コントローラーの JSON を返却しているコードを書き換える

    // trait
    use JsonResponseTrait;
    public function show(string $id)
    {
        $event = Event::inActive()->findOrFail($id);
        // return response()->json($event); この行を以下に変更 ↓
        return $this->unescapedJsonResponse($event);
    }

No.2543
09/02 14:36

edit