Я пытаюсь создать веб-приложение, используя 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');
заранее спасибо !
Вы используете Laravel 4.2?
Кажется, что вы входите в систему вручную, если вы хотите войти в систему пользователя,
ты shoule
if (Auth::attempt(array('email' => $email, 'password' => $password)))
{
if(Auth::User()->admin != 1){
#your logic
}
return Redirect::intended('dashboard');
}
Других решений пока нет …