Laravel 5 中间件中的Laravel 5用户授权
我一直在与laravel 5合作,我想根据用户类中的id创建一个自动生成路线。看起来是这样的:Laravel 5 中间件中的Laravel 5用户授权,laravel-5,Laravel 5,我一直在与laravel 5合作,我想根据用户类中的id创建一个自动生成路线。看起来是这样的: <?php namespace App; use Illuminate\Auth\Authenticatable; use Illuminate\Database\Eloquent\Model; use Illuminate\Auth\Passwords\CanResetPassword; use Illuminate\Contracts\Auth\Authenticatable as Aut
<?php namespace App;
use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
class User extends Model implements AuthenticatableContract, CanResetPasswordContract {
use Authenticatable, CanResetPassword;
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'users';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'id',
'email',
'password',
'AutorisationId',
'Firstname',
'Lastname',
'OrganisationId'
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = ['password', 'remember_token'];
/**
* @return \Illuminate\Database\Eloquent\Relations\HasOne
*/
public function autorisation()
{
return $this->HasOne('App\Autorisation', 'id', 'AutorisationId');
}
/**
* @return \Illuminate\Database\Eloquent\Relations\HasOne
*/
public function organisation()
{
return $this->HasOne('App\Organisation', 'id', 'OrganisationId');
}
}
但它总是重新指向adminpage。我做错了什么?我在谷歌上搜索了很多这个问题,但是我尝试过的每个解决方案都不起作用。在你的问题中包括routes.php文件。我在你询问时添加了routes.php文件。你的应用程序的入口点在哪里?我假设您有一个重定向到管理员、组织或来宾的/进入路线。您有自己的中间件,但必须将其应用于路由或控制器。
<?php namespace App\Http\Middleware;
use Closure;
use Illuminate\Contracts\Auth\Guard;
use Illuminate\Http\RedirectResponse;
class RedirectIfAuthenticated {
/**
* The Guard implementation.
*
* @var Guard
*/
protected $auth;
/**
* Create a new filter instance.
*
* @param Guard $auth
* @return void
*/
public function __construct(Guard $auth)
{
$this->auth = $auth;
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($this->auth->check()) {
if (\Auth::user()->autorisationId === 1) {
return redirect('admin');
} else if (\Auth::user()->autorisationId === 2) {
return redirect('organisation');
} else if (\Auth::user()->autorisationId === 3) {
return redirect('guest');
}
return $next($request);
}
}
}
/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/
Route::get('/', 'WelcomeController@index');
Route::get('home', 'HomeController@index');
Route::controllers([
'auth' => 'Auth\AuthController',
'password' => 'Auth\PasswordController',
]);
Route::get('admin', 'AdminController@index');
Route::resource('admin/systemData', 'Admin\systemDataController');
Route::resource('admin/Organisations', 'Admin\OrganisationController');
Route::post('admin/Organisations/activeOrganisation', 'Admin\OrganisationController@setOrgansationActive');
Route::get('admin/logout', 'AdminController@Logout');
Route::resource('organisation', 'Organisation\admin\adminController');
Route::get('organisation/logout', 'AdminController@Logout');
Route::resource('guest', 'Organisation\guest\guestController');
Route::get('guest/logout', 'AdminController@Logout');