Laravel: создать паблику c Страница профиля - PullRequest
0 голосов
/ 24 марта 2020

Я создаю laravel приложение, которое должно иметь общедоступную c страницу профиля пользователя. Страница профиля, которая у меня сейчас есть, является частной. Как сделать страницу доступной c, чтобы все пользователи могли просматривать все профили.

Вот код: -

В маршрутах -> Интернет. php

Route::get('user/profile', 'UserProfileController@profile')->name('user.profile');

В Http-> Контроллеры -> UserProfileController. php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserProfileController extends Controller
{
    //
    public function __construct()
    {
        $this->middleware('auth');
    }
    public function profile()
    {
        return view('user.profile');
    }


}

In View -> user -> profile.blade. php

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row">
        <div class="col-md-10 offset-md-1">
            <div class="card">
                <div class="card-header">{{ Auth::user()->name }}'s Profile page</div>

                <div class="card-body">
                    Hi, {{ Auth::user()->name }} This is a private profile page!!!
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

Выход выглядит так The private profile view

Ответы [ 2 ]

1 голос
/ 28 марта 2020

добавить идентификатор пользователя

<a  href="{{ route('user.profile', auth()->user()->id )}}"></a>
1 голос
/ 25 марта 2020

01. изменить роутер на

Route::get('user/profile/{id}', 'UserProfileController@profile')->name('user.profile');

02. в методе профиля UserProfileController ($ id) передайте $ id и добавьте промежуточное ПО, кроме

use App\User; 
class UserProfileController extends Controller
{
    //
    public function __construct()
    {
        $this->middleware('auth', ['except' => [ 'profile']]);
    }
    public function profile($id)
    {
        $user = User::find($id);
        return view('user.profile', compact('user') );
    }

}

** 03. В представлении -> пользователь -> profile.blade. php **

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row">
        <div class="col-md-10 offset-md-1">
            <div class="card">
                <div class="card-header">{{ $user->name }}'s Profile page</div>

                <div class="card-body">
                    Hi, {{ $user->name }} This is a private profile page!!!
                </div>
            </div>
        </div>
    </div>
</div>
@endsection
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...