laravel: перенаправить на admin, когда залогинен, пользователь является admin с использованием скаффолда Auth.

Я пытаюсь создать веб-приложение, используя laravel для бэкэнда! Я использовал команду php artisan make: auth для генерации базовой логики и представлений для входа. Сейчас я пытаюсь перенаправить пользователей в соответствии с полем администратора в таблице пользователей в базе данных. Проблема заключается в следующем: он думает, что я не получаю правильные значения из БД, поэтому перенаправление никогда не работает …

вот маршруты .php

Route::group(['middleware' => 'web'], function () {
Route::auth();
Route::get('/register', function () {
return redirect('/step1');
});
route::get('/dashboard', function () {
return view('admin.dashboard');
});
// after login --> else "welcome"Route::get('/home', 'HomeController@index');
// register user + agency
Route::get('/step1', 'AgencyController@showStep1');
Route::post('/step1', 'Auth\AuthController@register');
// complete registration step 2 --> 9
Route::get('/step{stepId}', ['middleware' => 'auth', 'uses' => 'AgencyController@show']);
Route::post('/step{stepId}', 'AgencyController@store');});

Вот код для перенаправления (в AuthController.php)

<?php

namespace App\Http\Controllers\Auth;

use App\Agency;
use App\Http\Controllers\Controller;
use App\User;
use Auth;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Http\Request;
use Validator;

class AuthController extends Controller {
/*
|-------------------------------------------------------------------             -------
| Registration & Login Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users, as well as the
| authentication of existing users. By default, this controller uses
| a simple trait to add these behaviors. Why don't you explore it?
|
*/

use AuthenticatesAndRegistersUsers, ThrottlesLogins;

/**
* Where to redirect users after login / registration.
*
* @var string
*/
protected $redirectTo = '/';

/**
* Create a new authentication controller instance.
*
* @return void
*/
public function __construct() {
$this->middleware($this->guestMiddleware(), ['except' => 'logout']);
}

public function login() {
if (Auth::check()) {

if (Auth::User()->admin != '1') {

return redirect('/dashboard');
} else {
return redirect('/step1');
}
} else {return 'doesnt work :(';}
}

когда я запускаю это и авторизируюсь, я всегда получаю текст «не работает».

ПРИМЕЧАНИЕ: команда Auth генерирует маршруты:

$this->get('login', 'Auth\AuthController@showLoginForm');
$this->post('login', 'Auth\AuthController@login');
$this->get('logout', 'Auth\AuthController@logout');

// Registration Routes...
$this->get('register', 'Auth\AuthController@showRegistrationForm');
$this->post('register', 'Auth\AuthController@register');

заранее спасибо !

0

Решение

Вы используете Laravel 4.2?
Кажется, что вы входите в систему вручную, если вы хотите войти в систему пользователя,
ты shoule

if (Auth::attempt(array('email' => $email, 'password' => $password)))
{
if(Auth::User()->admin != 1){
#your logic
}
return Redirect::intended('dashboard');
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]