mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-07 23:22:48 +08:00
路由增加角色参数 增加getRole方法获取路由的角色
This commit is contained in:
@@ -234,9 +234,10 @@ class Route
|
|||||||
* @param string $type 请求类型
|
* @param string $type 请求类型
|
||||||
* @param array $option 路由参数
|
* @param array $option 路由参数
|
||||||
* @param array $pattern 变量规则
|
* @param array $pattern 变量规则
|
||||||
|
* @param mixed $role 角色信息
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function rule($rule, $route = '', $type = '*', $option = [], $pattern = [])
|
public static function rule($rule, $route = '', $type = '*', $option = [], $pattern = [], $role = null)
|
||||||
{
|
{
|
||||||
$group = self::getGroup('name');
|
$group = self::getGroup('name');
|
||||||
if (!is_null($group)) {
|
if (!is_null($group)) {
|
||||||
@@ -260,12 +261,16 @@ class Route
|
|||||||
$route = $val[0];
|
$route = $val[0];
|
||||||
$option1 = array_merge($option, $val[1]);
|
$option1 = array_merge($option, $val[1]);
|
||||||
$pattern1 = array_merge($pattern, isset($val[2]) ? $val[2] : []);
|
$pattern1 = array_merge($pattern, isset($val[2]) ? $val[2] : []);
|
||||||
|
if (isset($val[3])) {
|
||||||
|
self::setRole($key, $val[3]);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$route = $val;
|
$route = $val;
|
||||||
}
|
}
|
||||||
self::setRule($key, $route, $type, isset($option1) ? $option1 : $option, isset($pattern1) ? $pattern1 : $pattern, $group);
|
self::setRule($key, $route, $type, isset($option1) ? $option1 : $option, isset($pattern1) ? $pattern1 : $pattern, $group);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
self::setRole($rule, $role);
|
||||||
self::setRule($rule, $route, $type, $option, $pattern, $group);
|
self::setRule($rule, $route, $type, $option, $pattern, $group);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -346,12 +351,15 @@ class Route
|
|||||||
/**
|
/**
|
||||||
* 设置当前执行的参数信息
|
* 设置当前执行的参数信息
|
||||||
* @access public
|
* @access public
|
||||||
* @param array $options 参数信息
|
* @param string $name 分组名或者路由规则
|
||||||
|
* @param mixed $role 角色信息
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
protected static function setOption($options = [])
|
protected static function setRole($name, $role)
|
||||||
{
|
{
|
||||||
self::$option[] = $options;
|
if ($role) {
|
||||||
|
self::$role[$name] = $role;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -359,9 +367,9 @@ class Route
|
|||||||
* @access public
|
* @access public
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public static function getOption()
|
public static function getRole()
|
||||||
{
|
{
|
||||||
return self::$option;
|
return self::$role;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -401,9 +409,10 @@ class Route
|
|||||||
* @param array|\Closure $routes 路由地址
|
* @param array|\Closure $routes 路由地址
|
||||||
* @param array $option 路由参数
|
* @param array $option 路由参数
|
||||||
* @param array $pattern 变量规则
|
* @param array $pattern 变量规则
|
||||||
|
* @param mixed $role 角色信息
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function group($name, $routes, $option = [], $pattern = [])
|
public static function group($name, $routes, $option = [], $pattern = [], $role = null)
|
||||||
{
|
{
|
||||||
if (is_array($name)) {
|
if (is_array($name)) {
|
||||||
$option = $name;
|
$option = $name;
|
||||||
@@ -427,6 +436,7 @@ class Route
|
|||||||
self::$rules['*'][$name]['option'] = $option;
|
self::$rules['*'][$name]['option'] = $option;
|
||||||
self::$rules['*'][$name]['pattern'] = $pattern;
|
self::$rules['*'][$name]['pattern'] = $pattern;
|
||||||
}
|
}
|
||||||
|
self::setRole($name, $role);
|
||||||
} else {
|
} else {
|
||||||
$item = [];
|
$item = [];
|
||||||
foreach ($routes as $key => $val) {
|
foreach ($routes as $key => $val) {
|
||||||
@@ -437,6 +447,9 @@ class Route
|
|||||||
$route = $val[0];
|
$route = $val[0];
|
||||||
$option1 = array_merge($option, isset($val[1]) ? $val[1] : []);
|
$option1 = array_merge($option, isset($val[1]) ? $val[1] : []);
|
||||||
$pattern1 = array_merge($pattern, isset($val[2]) ? $val[2] : []);
|
$pattern1 = array_merge($pattern, isset($val[2]) ? $val[2] : []);
|
||||||
|
if (isset($val[3])) {
|
||||||
|
self::setRole($name, $val[3]);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$route = $val;
|
$route = $val;
|
||||||
}
|
}
|
||||||
@@ -474,7 +487,7 @@ class Route
|
|||||||
self::setGroup($currentGroup, $currentOption, $currentPattern);
|
self::setGroup($currentGroup, $currentOption, $currentPattern);
|
||||||
} else {
|
} else {
|
||||||
// 批量注册路由
|
// 批量注册路由
|
||||||
self::rule($routes, '', '*', $option, $pattern);
|
self::rule($routes, '', '*', $option, $pattern, $role);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -858,7 +871,6 @@ class Route
|
|||||||
$rule = self::getRouteExpress($item);
|
$rule = self::getRouteExpress($item);
|
||||||
}
|
}
|
||||||
if (!empty($rule['route']) && self::checkOption($rule['option'], $request)) {
|
if (!empty($rule['route']) && self::checkOption($rule['option'], $request)) {
|
||||||
self::setOption($rule['option']);
|
|
||||||
return self::parseRule($item, $rule['route'], $url, $rule['option']);
|
return self::parseRule($item, $rule['route'], $url, $rule['option']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -922,7 +934,7 @@ class Route
|
|||||||
if (is_string($str) && $str && 0 !== strpos(str_replace('|', '/', $url), $str)) {
|
if (is_string($str) && $str && 0 !== strpos(str_replace('|', '/', $url), $str)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
self::setOption($option);
|
|
||||||
$result = self::checkRoute($request, $rule, $url, $depr, $key, $option);
|
$result = self::checkRoute($request, $rule, $url, $depr, $key, $option);
|
||||||
if (false !== $result) {
|
if (false !== $result) {
|
||||||
return $result;
|
return $result;
|
||||||
@@ -938,7 +950,6 @@ class Route
|
|||||||
$rule = $group . ($rule ? '/' . ltrim($rule, '/') : '');
|
$rule = $group . ($rule ? '/' . ltrim($rule, '/') : '');
|
||||||
}
|
}
|
||||||
|
|
||||||
self::setOption($option);
|
|
||||||
if (isset($options['bind_model']) && isset($option['bind_model'])) {
|
if (isset($options['bind_model']) && isset($option['bind_model'])) {
|
||||||
$option['bind_model'] = array_merge($options['bind_model'], $option['bind_model']);
|
$option['bind_model'] = array_merge($options['bind_model'], $option['bind_model']);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user