🎉
Compact関数の使い方
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