前提・実現したいこと
ログインしているユーザーのデータを表示させたいのですが、どうしてもうまく表示できなくて困っています。どのように解決をすればいいのか、ご教授して頂きたく投稿させて頂きました。
発生している問題・エラーメッセージ
データをviewに渡して表示させるとこのように表示をしてしまいます。
[{"id":3,"question":"\u3042\u306a\u305f\u306e\u8da3\u5473\u306f\uff1f","created_at":"2020-09-06T08:00:39.000000Z","updated_at":"2020-09-06T08:00:39.000000Z","laravel_through_key":1}]
該当のソースコード
HomeController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class HomeController extends Controller { /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('auth'); $this->middleware('UnescapeJsonResponse'); } /** * Show the application dashboard. * * @return \Illuminate\Contracts\Support\Renderable */ public function index() { $auth = \Auth::user(); return view('home')->with('auth', $auth); } }
home.blade.php
@extends('layouts.app') @section('content') <div class="container"> <div class="row justify-content-center"> <div class="col-md-8"> <div class="card"> <div class="card-header">{{ __('Dashboard') }}</div> <div class="card-body"> @if (session('status')) <div class="alert alert-success" role="alert"> {{ session('status') }} </div> @endif <h2>製作したアンケート一覧</h2> {{ $auth->questionnaires }} <h2>答えたアンケート</h2> </div> </div> </div> </div> </div> @endsection
Http\Middleware\UnescapeJsonResponse.php
<?php namespace App\Http\Middleware; use Closure; use Symfony\Component\HttpFoundation\JsonResponse; class UnescapeJsonResponse { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $response = $next($request); //JSONでない場合はそのまま if (!$response instanceof JsonResponse) { return $response; } // Unicodeエスケープさせないようにオプションを追加 $response->setEncodingOptions($response->getEncodingOptions() | JSON_UNESCAPED_UNICODE); return $response; } }
app\User.php
<?php namespace App; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; class User extends Authenticatable { use Notifiable; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'name', 'email', 'password', ]; /** * The attributes that should be hidden for arrays. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; /** * The attributes that should be cast to native types. * * @var array */ protected $casts = [ 'email_verified_at' => 'datetime', ]; public function responses(){ return $this->belongsToMany('App\Response', 'response_user', 'user_id', 'response_id'); } public function questionnaireUsers(){ return $this->hasMany('App\QuestionnaireUser'); } public function questionnaires(){ return $this->hasManyThrough('App\Questionnaire', 'App\QuestionnaireUser', 'user_id', 'id', 'id', 'questionnaire_id' ); } public function answers(){ return $this->hasManyThrough('App\Answer', 'App\Response', 'answer_id', 'id', 'id', 'answer_id'); } }
試したこと
自分ではどのように検索すればいいのかわからず、こちらに投稿させて頂きました。
※追加
Unicodeエスケープを無効化
こちらの記事を参考にUnicodeエスケープを無効化を試みたのですが、うまくいかない状況にあります。
補足情報(FW/ツールのバージョンなど)
php -v
7.4.6
php artisan -V
Laravel Framework 7.11.0
mysql --version
mysql Ver 8.0.20 for Linux on x86_64 (MySQL Community Server - GPL)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/01 14:15