Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#3 Re: Laravel 5.x » Как сделать ридерект logout - на Login » 20.09.2018 20:19:09

Почему то не могу переопределить этот метод, появляется ошибка : "Class App\Http\Controllers\Auth\Request does not exist". Прошу помощи!

#4 Re: Laravel 5.x » Как написать админку на laravel с одтельным входом » 20.09.2018 12:51:28

Благодарю за ответ.
Гард описала так:
//---
        'admin' => [
            'driver' => 'session',
            'provider' => 'admins',
        ],
        //---

Добавила еще это:
//---
        'admins' => [
            'driver' => 'eloquent',
            'model' => App\Model\Admin\Admin::class,
        ],
//---
Табличку сделала для админа отдельную

#5 Laravel 5.x » Как написать админку на laravel с одтельным входом » 19.09.2018 21:40:44

svetlana
Ответов: 5

Приветствую форумчан и прошу помощи. Опыта мало, но хочется написать админку для сайта
с отдельной формой для админа.

Пытаюсь следовать совету на блоге по адресу:
https://super-coding.blogspot.com/2017/ … el_14.html

1.
В роутах создаю группу маршрутов для панели, указываю для послердинка auth, парамертр admin. :
Route::group(['namespace' => 'Admin', 'middleware'=>'auth:admin'], function() {
   Route::get('admin/home', 'HomeController@index')->name('admin.home');

   // Аутентификация
   Route::get('admin', 'Auth\LoginController@showLoginForm')->name('admin.login');
   Route::post('admin', 'Auth\LoginController@login');
});

2.
В файле App\Http\Middleware\RedirectIfAuthenticated.php, изменяют метод handle:
    public function handle($request, Closure $next, $guard = null)
    {
        //---
        switch($guard) {
        case 'admin':
            if(Auth::guard($guard)->check())
            {
                return redirect('/admin/home'); //Переадресация админа на главную админки
            }
        break;

        default:
        //---
       
            if (Auth::guard($guard)->check()) {
            return redirect('/cabinet'); //Переадресация юзера в акк
            }
        }   

        return $next($request);
    }
3.
В файле \vendor\laravel\framework\src\Illuminate\Foundation\Exceptions
Изменил метод unauthenticated
    protected function unauthenticated($request, AuthenticationException $exception)
    {
        /* Закомментивровал это
        return $request->expectsJson()
                    ? response()->json(['message' => $exception->getMessage()], 401)
                    : redirect()->guest(route('login'));
                   
         */
       
        //Заменил на это, все что ниже
         if ($request->expectsJson())
         {
            //return response()->json(['error' => 'Unauthenticated.'], 401);
            return response()->json(['message' => $exception->getMessage()], 401);
        }
               
        //---                   
        $guard = array_get($exception->guards(),0);

        switch ($guard)
        {
            case 'admin':
                return redirect()->guest(route('admin.login'));
                break;

            default:
                return redirect()->guest(route('login'));
                break;
        }
        //---
    }

redirect()->guest(route('admin.login')); - этот ридерект почему то зацикливается.

Может кто подскажет почему?

Подвал раздела