Laravel 5.0 重定向无效
Laravel 5.0 redirect not working
我正在 Laravel 5.0 开发自定义访问控制系统。我创建了一个辅助函数来在执行函数之前检查用户是否有权限
public function index() {
if( has_permission( 'blahblah' ) ) {
// Do actions
}
}
我还有一个辅助函数has_permission
function has_permission( $action ) {
$current_user_perms = array( 'view_users', 'create_users', 'edit_users', 'delete_users' );
if( !in_array( $action, $current_user_perms ) ) {
return redirect()->route('access_denied');
}
return true;
}
但是当权限失败时,它不是重定向。有什么想法吗?
您应该 return 重定向响应以使其正常工作。
- 将助手更改为 return 布尔值:
function has_permission($action) {
$current_user_perms = ['view_users', 'create_users', 'edit_users'];
return in_array($action, $current_user_perms);
}
- 在控制器中检查辅助方法和 return 如果需要重定向响应:
public function index() {
if(!has_permission('blahblah')) {
return redirect()->route('access_denied');
}
// do stuff
}
PS。我强烈建议阅读 middlewares 并使用它们而不是助手,这是实现简单权限功能的正确 Laravel 方式。
我正在 Laravel 5.0 开发自定义访问控制系统。我创建了一个辅助函数来在执行函数之前检查用户是否有权限
public function index() {
if( has_permission( 'blahblah' ) ) {
// Do actions
}
}
我还有一个辅助函数has_permission
function has_permission( $action ) {
$current_user_perms = array( 'view_users', 'create_users', 'edit_users', 'delete_users' );
if( !in_array( $action, $current_user_perms ) ) {
return redirect()->route('access_denied');
}
return true;
}
但是当权限失败时,它不是重定向。有什么想法吗?
您应该 return 重定向响应以使其正常工作。
- 将助手更改为 return 布尔值:
function has_permission($action) {
$current_user_perms = ['view_users', 'create_users', 'edit_users'];
return in_array($action, $current_user_perms);
}
- 在控制器中检查辅助方法和 return 如果需要重定向响应:
public function index() {
if(!has_permission('blahblah')) {
return redirect()->route('access_denied');
}
// do stuff
}
PS。我强烈建议阅读 middlewares 并使用它们而不是助手,这是实现简单权限功能的正确 Laravel 方式。