找了文档,源码都没有发现获取路由别名的方法,于是自己在webman源码下小小修改了一下代码,希望以后更新版本中能增加获取路由别名的方法~
vendor/workerman/webman-framework/src/Route.php 增加以下代码
protected static $_callBackName = [];
public static function setCallBackByName($callBack,$name){
self::$_callBackName[$callBack] = $name;
}
public static function getCallBackByName($callBack){
return self::$_callBackName[$callBack]??'';
}
public static function getAllCallBack(){
return self::$_callBackName;
}
public static function getCurrentName(){
return self::getCallBackByName(self::getCurrentCallBack());
}
public static function getCurrentCallBack(){
$request = App::request();
return $request->controller.'@'.$request->action;
}
vendor/workerman/webman-framework/src/Route/Route.php
76行 public function name 函数下增加代码
public function name($name)
{
$this->_name = $name;
Router::setByName($name, $this);
Router::setCallBackByName($this->_callback,$name); //增加这行代码
return $this;
}
调用方法为
use Webman\Route;
Route::getCurrentName();
当然要注意的是路由代码为
Route::any('/siteConfig/index', 'app\admin\controller\siteConfig@index')->name('siteConfigIndex');
当然我是很不喜欢修改源码。
可是我很喜欢这个框架,在弄自己的后台管理系统。实在不得已改了一下。
修改此方法是为了权限管理。
我也觉得能获取路由名称是有必要的。
作者可以发个pr合并进去框架吗?这个很需要用到啊
已经支持获取当前请求路由,请更新。
composer require workerman/webman-framework ^1.3.2
获取路由别名方法
我发现使用workerman的都是大佬啊,都会自个动手写代码,菜菜的我打心底崇拜!
这个功能太实用了,这样可以在模板里就不用写死了。
谢谢大佬们的辛苦付出。