Laravel Route::group 管理员
Laravel Route::group for Admins
如果用户是管理员,我想验证一些路由。
Route::get( '/user/{data}', 'UserController@getData' );
Route::post( '/user/{data}', 'UserController@postData' );
现在,我在 Controller 中完成了它:
public function getData( $data = 'one' )
{
if ( Auth::user()->permission == 'admin' ) {
//...
} else {
//...
}
}
public function postData( Request $request, $data = 'one' )
{
if ( Auth::user()->permission == 'admin' ) {
//...
} else {
//...
}
}
我想用 Route::group 制作它,但我如何在 routes.php 中制作它?
您可以 create middleware 这将检查用户是否是管理员:
class IsAdmin
{
public function handle($request, Closure $next)
{
if (Auth::user()->permission == 'admin') {
return $next($request);
}
return redirect()->route('some.route'); // If user is not an admin.
}
}
在Kernel.php
中注册:
protected $routeMiddleware = [
....
'is.admin' => \App\Http\Middleware\IsAdmin::class,
];
然后应用到路由组:
Route::group(['middleware' => 'is.admin'], function () {
Route::get('/user/{data}', 'UserController@getData');
Route::post('/user/{data}', 'UserController@postData');
});
你可以指定一个路由组,给它一个中间件
https://laravel.com/docs/5.3/routing#route-groups
https://laravel.com/docs/5.3/middleware
https://laravel.com/docs/5.3/middleware#assigning-middleware-to-routes
示例:
routes.php
Route::group(['middleware' => 'admin'], function () {
Route::get( '/user/{data}', 'UserController@getData' );
Route::post( '/user/{data}', 'UserController@postData' );
});
app/Http/Middleware/admin.php
<?php
namespace App\Http\Middleware;
use Closure;
class Admin
{
public function handle($request, Closure $next)
{
if ( Auth::user()->permission !== 'admin' ) {
//
} else {
//
}
}
}
如果用户是管理员,我想验证一些路由。
Route::get( '/user/{data}', 'UserController@getData' );
Route::post( '/user/{data}', 'UserController@postData' );
现在,我在 Controller 中完成了它:
public function getData( $data = 'one' )
{
if ( Auth::user()->permission == 'admin' ) {
//...
} else {
//...
}
}
public function postData( Request $request, $data = 'one' )
{
if ( Auth::user()->permission == 'admin' ) {
//...
} else {
//...
}
}
我想用 Route::group 制作它,但我如何在 routes.php 中制作它?
您可以 create middleware 这将检查用户是否是管理员:
class IsAdmin
{
public function handle($request, Closure $next)
{
if (Auth::user()->permission == 'admin') {
return $next($request);
}
return redirect()->route('some.route'); // If user is not an admin.
}
}
在Kernel.php
中注册:
protected $routeMiddleware = [
....
'is.admin' => \App\Http\Middleware\IsAdmin::class,
];
然后应用到路由组:
Route::group(['middleware' => 'is.admin'], function () {
Route::get('/user/{data}', 'UserController@getData');
Route::post('/user/{data}', 'UserController@postData');
});
你可以指定一个路由组,给它一个中间件
https://laravel.com/docs/5.3/routing#route-groups
https://laravel.com/docs/5.3/middleware
https://laravel.com/docs/5.3/middleware#assigning-middleware-to-routes
示例:
routes.php
Route::group(['middleware' => 'admin'], function () {
Route::get( '/user/{data}', 'UserController@getData' );
Route::post( '/user/{data}', 'UserController@postData' );
});
app/Http/Middleware/admin.php
<?php
namespace App\Http\Middleware;
use Closure;
class Admin
{
public function handle($request, Closure $next)
{
if ( Auth::user()->permission !== 'admin' ) {
//
} else {
//
}
}
}