Halu_wimps
@Halu_wimps (シガラキ)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

PHP エラーについて

解決したいこと

Laravelを使ってPHPの学習をしています。
トップページから目的ページに遷移するときに下記エラーが起きてしまいます。
他のページに遷移するときは起きない状態で自分ではまだ解決ができていないので、
問題点を指摘していただければ幸いです。

発生している問題・エラー

Undefined variable $user
<a class="dropdown-item" href="<?php echo e(url('users/' .$user->id), false); ?>">
 マイページ
</a>

該当するソースコード

views\layouts\app.blade.php
                            <li class="nav-item dropdown">
                                <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
                                    {{ Auth::user()->name }}
                                </a>

                                <div class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdown">
                                    <a class="dropdown-item" href="{{ route('logout') }}"
                                       onclick="event.preventDefault();
                                                     document.getElementById('logout-form').submit();">
                                        {{ __('ログアウト') }}
                                    </a>

                                    <form id="logout-form" action="{{ route('logout') }}" method="POST" class="d-none">
                                        @csrf
                                    </form>

                  [エラー箇所]       <a class="dropdown-item" href="{{ url('users/' .$user->id) }}">
                                      マイページ
                                    </a>
                                </div>
                            </li>
                        @endguest
                    </ul>
                </div>
            </div>
        </nav>

        <main class="py-4">
            @yield('content')
        </main>

エラーが起きる遷移先ページ

blade.php
@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">

            <form class="form-inline" action="{{url('/keysearch')}}">
                <div class="form-group">
                    <input type="text" name="keyword" value="{{$keyword}}" class="form-control" placeholder="ユーザー名を入力してください">
                </div>
                    <input type="submit" value="検索" class="btn btn-md btn-primary">
            </form>
            
            </div>
        </div>
    </div>
</div>
@endsection

初歩的な部分だとは思いますがご指摘をどうかお願いいたします。

0

2Answer

エラーメッセージにUndefined variable $userとある通り、$userが定義されないまま使われているのが原因です。クラス定義っぽいですけども。

0Like

ここで使用します

...
 <li class="nav-item dropdown">
                                <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
                                    {{ Auth::user()->name }}
                                </a>
...

ここで使用します

...
    <a class="dropdown-item" href="{{ url('users/' .$user->id) }}">
                                      マイページ
    </a>
...

こう使えばいいのです

...
    <a class="dropdown-item" href="{{ url('users/' .Auth::user()->id) }}">
                                      マイページ
    </a>
...
0Like

Your answer might help someone💌