実現したいこと
HerokuにLaravelプロジェクトをアップしたのですが、ユーザー情報を変更(update)してshowページへ遷移させる際に、if文で毎回、エラーが起きる度に修正を入れていたのですが、@if($user->profile_image)
がどうしても修正しようとしてもエラーが出続けます。
if文からprofile_imageがnullの場合はデフォルトで用意している表示をするようにしているのですが、nullのprofile_imageを読み込もうとしていますというようなエラーが発生します。
発生している問題・エラーメッセージ
Attempt to read property "profile_image" on null (View: /app/resources/views/users/show.blade.php)
該当のソースコード
@if($current_user == $user) <div class="mypage container"> <div class="row justify-content-center"> <div class="mypage-body"> <div class="mypage-header"> <div class="mypage-name"> @if($user->profile_image) <p><img src="{{ asset('storage/' . $user['profile_image']) }}" width="100" height="40" class="user-show-profile-img"></p> @else <p class="user-profile-header-no-img">No Image</p> @endif <div class="user-page-show-name"> <h2>{{ $user->name }}</h2> </div> </div> <div class="mypage-user-edit"> <a href="{{ route('user.edit', $user->id) }}" class="mypage-user-edit-btn btn btn-outline-success">設定</a> </div> </div> <div class="mypage-introducition"> <div class="mypage-introduction-title"> <h5>詳細</h5> </div> <div class="mypage-introduction-content"> <p>{!! nl2br(e($user->self_introduction)) !!}</p> </div> </div> </div> <div class="mypage-myposts"> <div class="mypage-mypost-title"> <h3>ポッドキャスト</h3> </div> @if($posts->isEmpty()) <p class="post-null">投稿はありません</p> @endif <div class="user-page-post"> @foreach($posts as $post) <div class='user-post-card'> <a href="/posts/{{$post['id']}}" class="user-post-a"> <p class="user-card-img"><img src="{{ asset('storage/' . $post['image']) }}"></p> <div class="user-card-body"> <div class="user-card-title"> <p>{{ $post['name'] }}</p> </div> <div class="user-card-name"> @if($user->profile_image) <p><img src="{{ asset('storage/' . $user['profile_image']) }}" width="100" height="40" class="user-show-profile-img"></p> @else <p class="user-profile-no-img">No Image</p> @endif <div class="user-page-profile-name"> <p>{{ $post->user->name }}</p> </div> </div> </div> </a> </div> @endforeach </div> </div> </div> </div> </div> @else
UserController
1public function edit(Request $request, $id) 2 { 3 $user = Auth::user(); 4 $current_user = Auth::user(); 5 return view('users.edit', compact('user')); 6 } 7public function update(Request $request, $id) 8 { 9 $user = Auth::user(); 10 $current_user = Auth::user(); 11 $posts = Post::where('user_id', '=', $current_user)->get(); 12 if($request->profile_image){ 13 $user->profile_image = $request->profile_image->store('profile_images'); 14 } 15 $user->name = $request->name; 16 $user->email = $request->email; 17 $user->self_introduction = $request->self_introduction; 18 if($request->password){ 19 $user->password = $request->password; 20 $user->save(); 21 //\Session::flash('flash_message', 'ユーザー情報を更新しました'); 22 return view('users.show', ['user' => $user, 'current_user'=> $current_user, 'posts' => $posts]); 23 } 24 $user->save(); 25 return view('users.show', ['user' => $user, 'current_user'=> $current_user, 'posts' => $posts]); 26 }
!追記!
・ルーティング
routes/web.php
1//ユーザー 2Auth::routes(); 3Route::get('/user/{id}/regulation', [App\Http\Controllers\UserController::class, 'regulation'])->name('user.regulation'); 4Route::post('/user/{id}/regulation', [App\Http\Controllers\UserController::class, 'regulation'])->name('user.regulation'); 5Route::get('/user/{id}/cancell_regulation', [App\Http\Controllers\UserController::class, 'cancell_regulation'])->name('user.cancell_regulation'); 6Route::post('/user/{id}/cancell_regulation', [App\Http\Controllers\UserController::class, 'cancell_regulation'])->name('user.cancell_regulation'); 7Route::resource('user', App\Http\Controllers\UserController::class);
試したこと
@if(!is_null($user->profile_image))
に書き換えたのですが、それでもエラーが発生しました。
profile_imageを読み込まないのはifの記述が原因でしょうか?
補足情報(FW/ツールのバージョンなど)
PHP8
Laravel10

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/12/06 13:31
2023/12/06 13:44
2023/12/06 15:20
2023/12/07 06:04
2023/12/07 10:16
2023/12/07 14:02 編集
2023/12/07 14:23
2023/12/08 05:32
2023/12/08 05:59
2023/12/11 02:32 編集
2023/12/11 02:55
2023/12/11 04:06
2023/12/11 04:16
2023/12/11 05:28
2023/12/11 06:45
2023/12/12 03:25 編集
2023/12/12 04:26
2023/12/13 03:07
2023/12/13 03:15
2023/12/13 04:05
2023/12/13 04:32
2023/12/15 08:17
2023/12/15 08:20
2023/12/18 07:05 編集
2023/12/18 10:24
2023/12/20 05:56
2023/12/20 09:28
2023/12/20 15:25
2023/12/20 18:42
2023/12/21 02:50