laravel中我们常常需要获取当前的url,但是每个获取的都不一样,我们有时候需要获取的需求也不相同,所以我这里汇总一下,方便以后查询和使用。
$route = pathinfo($request->decodedPath(), PATHINFO_FILENAME);
$name = Route::currentRouteName();
使用URL类:
// 返回当前页面的地址:http://a.com/platforms
URL::full();
url()->full();
// 返回当前页面的完整路径:http://a.com/platforms
URL::current();
url()->current();
// 返回前一个页面的地址:http://a.com
URL::previous();
url()->previous();
// https://jiahe.com/css/foo.css
URL::secureAsset('css/foo.css');
使用 Request 类
// 返回当前页面的完整路径url: http://xx.com/aa/bb
Request::url();
$request->url()
// 路径: /aa/bb
Request::path();
$request->path();
// 获取请求 Uri: /aa/bb/?c=d
Request::getRequestUri();
$request->getRequestUri();
// 获取 Uri: http://xx.com/aa/bb/?c=d
Request::getUri();
$request->getUri();
获取基础路由信息
$request->route()->getAction();
#获取路由类和方法名
$request->route()->getActionName()
使用 Input 类
Input::url();
使用$_SERVER获取基础路由
// path:/platforms?a=1
$_SERVER['REQUEST_URI']
// 获取当前基础路由,比如http://a.com/test/a返回http://a.com
$_SERVER["HTTP_HOST"]
// 更多参数可以直接打印SERVER
dd($_SERVER);
laravel中获取**$_SERVER(HTTP)信息
laravel也可以像$_SERVER**一样获取的函数,我们可以使用如下函数,返回为array
Request::server(); // 可以获取到所有 $_SERVER 信息
$request->server();
Request::server('HTTP_HOST'); // 可以获取到 $_SERVER 中的 HTTP_HOST 信息 (即访问域名)
本文转载自:https://phpartisan.cn/news/58.html
在api里面:
dd(
' $request->getRequestUri()=>' . $request->getRequestUri(),
' $request->path()=>' . $request->path(),
' $request->decodedPath()=>' . $request->decodedPath(),
' $request->route()->getName() =>' . $request->route()->getName(),
' \Route::currentRouteName()=>' . \Route::currentRouteName(),
' $request->route()->getActionName() =>' . $request->route()->getActionName()
);
" $request->getRequestUri()=>/api/class/storeTrailClass"
" $request->path()=>api/class/storeTrailClass"
" $request->decodedPath()=>api/class/storeTrailClass"
" $request->route()->getName() =>"
" \Route::currentRouteName()=>"
" $request->route()->getActionName() =>App\Http\Controllers\SmallClassController@storeTrailClass"
同样的代码在web路由里面:
" $request->getRequestUri()=>/lessonAppointment/reservationSchedule"
" $request->path()=>lessonAppointment/reservationSchedule"
" $request->decodedPath()=>lessonAppointment/reservationSchedule"
" $request->route()->getName() =>"
" \Route::currentRouteName()=>"
" $request->route()->getActionName() =>App\Http\Controllers\ReservationController@reservationSchedule"
注意,以上方法只能在web路由和api路由里面使用,如果是console就不行,所以不能写在全局中间件里面,我这里要捕捉web和api请求的一些敏感操作,所以就要分别卸载web和api中间件里面:
D:\phpStudy\WWW\xxx\app\Http\Kernel.php