🎉

Compact関数の使い方

2022/12/31に公開約1,400字

Laravelでユーザー編集機能を作成した際の忘備録です。

①contorllerの記述で未定義の変数userが使えないという内容のエラーが発生しました。

ErrorException Undefined variable: user 
app/Http/Controllers/UserController.php

② ①が発生した際のUserController.phpとmy_date.blade.phpの記述内容が下記です。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\User;
use Illuminate\Validation\Rule;

class UserController extends Controller
{
    /**
     * プロフィール編集画面表示
     * @param
     * @return view プロフィール編集画面
     */
    public function show()
    {
        $user = Auth::user();
        return view('profile');
    }

エラー画面を詳しく見た結果、エラーが発生しているのは /work/resources/views/my_date.blade.phpというファイルからであることが判明した。
です。このmy_date.blade.phpのviewでuserを参照している為、controller側からuserを参照できるように設定する必要がある。

my_date.balde.phpを確認してみた。

            <div class="pt-2">
                <p class="h3 border-bottom border-secondary pb-3">プロフィール編集</p>
            </div>
            {!! Form::open(['route' => ['profile_edit'], 'method' => 'PUT']) !!}
            {!! Form::hidden('id',$user->id) !!} 

③Contorllerの記述を下記に修正してみた。
app/Http/Controllers/UserController.php

   /**
    * プロフィール編集画面表示
    * @param
    * @return view プロフィール編集画面
    */
   public function show()
   {
       $user = Auth::user();
       return view('profile', compact('user'));
   }

③のControllerの記述内容でうまく画面が表示されました。

ここで、compact関数の使い方を復習しようと思いました→

Discussion

ログインするとコメントできます