Перенаправление после входа laravel 7 дает мне белую страницу, без ошибок - PullRequest
0 голосов
/ 12 июля 2020
• 1000 *.

Теперь после входа в систему отображается пустая белая страница, без ошибок в Laravel журнале или laravel сервере разработки.

protected function login(Request $request)
{
    $credentials = $request->only('email', 'password');

    if (Auth::attempt($credentials)) {

        $user = Auth::user();

        if (Auth::check()) {
            if ($user->userType === 'Applicant') {
                return redirect()->route('home');
            }

            if ($user->userType === 'Business') {
                return redirect()->route('dashboard');
            }
        }
    }
}

Что не так с этим кодом?

web. php:

Route::get('login', 'Auth\LoginController@showLoginForm')->name('auth.login');
Route::post('login', 'Auth\LoginController@login')->name('login');

Route::get('/home', 'HomeController@index')->name('home');
Route::get('/dashboard', 'HomeController@dashboard')->name('dashboard');

HomeController

public function __construct()
{
    $this->middleware('auth');
}

public function index()
{
    return view('home');
}

public function dashboard()
{
    return view('dashboard');
}

---- Добавлен Home.blade. php ----

@extends('layouts.app')

@section('content')
<div id="app" class="ml-1 mr-1 border border-dark">
      <dashboard v-bind:u-Id="{{ Auth::user()->id }}"
        v-bind:p-Id="{{ auth()->user()->profile()->first()->id }}"
        > </dashboard>

</div>
@endsection

Ответы [ 2 ]

1 голос
/ 12 июля 2020

Я бы порекомендовал не изменять для этого метод входа в систему. Вместо этого я бы предложил использовать аутентифицированный «крючок» :

protected function authenticated(Request $request, $user)
{
    if ($user->userType === 'Applicant') {
        return redirect()->route('home');
    }

    if ($user->userType === 'Business') {
        return redirect()->route('dashboard');
    }
}
0 голосов
/ 12 июля 2020

Логичнее иметь страницу перенаправления по умолчанию, например, home. Я думаю, что приведенный ниже код более разумен.

protected function login(Request $request){
    $credentials = $request->only('email', 'password');

    if (Auth::attempt($credentials)) {

        $user = Auth::user();

        if (Auth::check()) {

            if ($user->userType === 'Business') {
            return redirect()->route('dashboard');

            } else {
                return redirect()->route('home');
            }
        }
    }
}

Если вы хотите иметь другую страницу перенаправления по умолчанию, используйте elseif и добавьте страницу по умолчанию в раздел else.

...