如何在Laravel Blade模板中获取并输出调用视图的控制器函数名称
实现方案
方案1:手动传递方法名(最稳妥无依赖)
在控制器的方法中直接通过魔术常量__FUNCTION__获取当前方法名,作为参数传递给视图:
public function testfunction(){ return view('back.page.simple', [ 'currentMethod' => __FUNCTION__ ]); }
在simple Blade模板中直接输出即可:
{{ $currentMethod }}
方案2:模板内自动获取(无需手动传参)
如果不想每次手动传参,可以直接在Blade模板中通过Laravel内置的路由/请求方法获取当前控制器方法名:
写法1:直接获取纯方法名
{{ request()->route()->getActionMethod() }}
直接输出testfunction,无需额外处理。
写法2:通过路由Action解析
如果需要先拿到完整的控制器+方法标识再拆分也可以:
{{ last(explode('@', Route::currentRouteAction())) }}
注意:上述两种自动获取的方式仅适用于路由绑定到控制器方法的场景,如果路由是闭包定义的则无法返回正确结果。
内容的提问来源于stack exchange,提问作者Md Touhidul Islam
相关产品推荐
相关产品推荐

