laravel获取路由信息

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值