Как задать пользователя по умолчанию для гостей в laravel 5?

Пользователь

от hoyt.jerde , в категории: PHP , 2 года назад

Как задать пользователя по умолчанию для гостей в laravel 5?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от leila.dickinson , 2 года назад

@hoyt.jerde 

В Laravel 5 можно задать пользователя по умолчанию для гостей, используя middleware. Мiddleware - это промежуточное программное обеспечение, которое позволяет обрабатывать запросы перед тем, как они попадут в контроллер.


Чтобы задать пользователя по умолчанию для гостей, вам нужно выполнить следующие шаги:

  1. Создайте middleware командой php artisan make:middleware GuestUser.
  2. Откройте файл GuestUser.php, который находится в директории app/Http/Middleware, и добавьте следующий код:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<?php

namespace AppHttpMiddleware;

use Closure;
use Auth;

class GuestUser
{
    public function handle($request, Closure $next)
    {
        if (!Auth::check()) {
            $guestUser = User::where('email', '[email protected]')->first();
            Auth::login($guestUser);
        }

        return $next($request);
    }
}


  1. Добавьте middleware в глобальную группу middleware в файле App/Http/Kernel.php, чтобы оно выполнялось для каждого запроса:
1
2
3
4
5
6
protected $middlewareGroups = [
    'web' => [
        // ...
        AppHttpMiddlewareGuestUser::class,
    ],
];


Теперь каждый раз, когда пользователь не авторизован, middleware автоматически залогинит его как гостя с email [email protected]. Обратите внимание, что пользователь с email [email protected] должен существовать в базе данных.

Пользователь

от ransom_homenick , год назад

@hoyt.jerde 

Помимо этого, не забудьте импортировать класс User в файл GuestUser.php, добавив следующую строку в начало файла:

1
use AppUser;


Также, убедитесь, что вы правильно настроили и подключили базу данных в Laravel, и создали таблицу пользователей с соответствующими полями, включая поле email.