首页 > 解决方案 > 右导航栏错误,未在 Laravel 中进行身份验证

问题描述

在我的网络应用程序中,我创建了一个个人资料部分。但问题是当它进入右侧导航栏中的仪表板时,它有我的个人资料和注销。当我单击我的个人资料 - > 在我的个人资料页面中时,右侧导航栏变为注册并登录,而不是名称和注销。我认为存在一些身份验证问题。请建议如何解决它。检查屏幕截图也可以更好地理解。

在此处输入图像描述

在此处输入图像描述

app.blade.php

    <div class="collapse navbar-collapse" id="navbarSupportedContent">
        <!-- Left Side Of Navbar -->
        <ul class="navbar-nav mr-auto">

        </ul>

        <!-- Right Side Of Navbar -->
        <ul class="navbar-nav ml-auto">
            <!-- Authentication Links -->
            @guest
                <li class="nav-item">
                    <a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a>
                </li>
                @if (Route::has('register'))
                    <li class="nav-item">
                        <a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a>
                    </li>
                @endif
            @else
                <li class="nav-item dropdown">
                    <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
                        {{ Auth::user()->name }} <span class="caret"></span>
                    </a>

                    <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">

                        @auth
                        <a class="dropdown-item" href="{{ route('profiles.show', Auth::user()->profile->id) }}">
                             My Profile
                         </a>
                         @endauth
                        <a class="dropdown-item" href="{{ route('logout') }}"
                           onclick="event.preventDefault();
                                         document.getElementById('logout-form').submit();">
                            {{ __('Logout') }}
                        </a>

                        <form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
                            @csrf
                        </form>
                    </div>
                </li>
            @endguest
        </ul>
    </div>
</div>

配置文件/show.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">
                    {{ $profile->name }}

                </div>
                <div class="card-body">
                    <form id="update-profile-form" action="{{ route('profiles.update' , $profile->id) }}" method="POST" enctype="multipart/form-data">
                        @csrf

                        @method('PATCH')
                        <div class="form-group row justify-content-center">
                            <div class='profile-avatar'>
                                <div onclick="document.getElementById('image').click()" class="profile-avatar-overlay">
                                    <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 32 32">

                                        <path d="M18 22.082v-1.649c2.203-1.241 4-4.337 4-7.432 0-4.971 0-9-6-9s-6 4.029-6 9c0 3.096 1.797 6.191 4 7.432v1.649c-6.784 0.555-12 3.888-12 7.918h28c0-4.030-5.216-7.364-12-7.918z"></path>
                                        </svg>

                                </div>
                                <img src="{{ URL::to('image/' .$profile->image()) }}" alt="" >

                            </div>
                        </div>

                        <input onchange="document.getElementById('update-profile-form').submit()" style="display: none;" id="image" type="file" name="image">

                        <div class="form-group">

                            <label for="name" class="form-control-label">

                                Name

                            </label>

                            <input id="name" name="name" value="{{ $profile->name }}" type="text" class="form-control">

                        </div> 

                        <div class="form-group">
                                <label for="description" class="form-control-label">

                                    Description

                                </label>

                                <textarea name="description" id="description"  rows="3" class="form-control">{{ $profile->description }}</textarea>


                            </div>

                            <button type="submit" class="btn btn-info">
                                    update profile
                            </button>
                    </form>


                </div>
            </div>
        </div>
    </div>
</div>
@endsection

配置文件控制器.php

class ProfileController extends Controller
{

    public function show(Profile $profile)
    {

        return view('profiles.show', compact('profile'));
    }


    public function update(Request $request, Profile $profile)
    {
        if ($request->hasFile('image'))
        {
            $profile->clearMediaCollection('images');

            $profile->addMediaFromRequest('image')
                     ->toMediaCollection('images');

        }
        return redirect()->back();
    }


}

标签: phplaravellaravel-5

解决方案


推荐阅读