legend3---laravel中获取控制器名称和方法名称
legend3---laravel中获取控制器名称和方法名称
一、总结
一句话总结:
\Route::current()->getActionName();会有完整的当前控制器名和方法名
public static function getControllerAndFunction() {$action = \Route::current()->getActionName();list($class, $method) = explode('@', $action);$class = substr(strrchr($class,'\\'),1);return ['controller' => $class, 'method' => $method]; }
1、list($class, $method) = explode('@', $action);中的list($class, $method)的作用是什么?
让list中的$class和$method分别对应explode出来的数组的两个元素
2、strrchr($class,'\\')的作用是什么?
strrchr() 函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。
App\Http\Controllers\Admin\MyController中查找\返回的结果是:\MyController
3、substr函数的作用是什么?
Return part of a string
echo substr('abcdef', 1); // bcdef
二、laravel中获取控制器名称和方法名称
1、示例
2、控制器中调用代码:
class MyController extends Controller {//修改密码的界面public function changePasswordForm(){dd(\App\Model\ControllerAndFunction::getControllerAndFunction());return view('admin.my.change_pass');}
3、获取控制器名称和方法名称的代码
1 <?php 2 3 namespace App\Model; 4 5 use Illuminate\Database\Eloquent\Model; 6 7 class ControllerAndFunction extends Model 8 { 9 // 10 /** 11 * @return array 12 * 获取控制器和方法名 13 */ 14 public static function getControllerAndFunction() 15 { 16 $action = \Route::current()->getActionName(); 17 list($class, $method) = explode('@', $action); 18 $class = substr(strrchr($class,'\\'),1); 19 return ['controller' => $class, 'method' => $method]; 20 } 21 22 23 /** 24 * 将控制器和方法用点拼接 25 * @return string 26 */ 27 public static function jointControllerAndFunction(){ 28 $action = \Route::current()->getActionName(); 29 list($class, $method) = explode('@', $action); 30 $class = substr(strrchr($class,'\\'),1); 31 return $class.'.'.$method; 32 } 33 34 }
$action = \Route::current()->getActionName();的结果为:
list($class, $method) = explode('@', $action);的结果为:
这一步得到方法名changePasswordForm
$class = substr(strrchr($class,'\\'),1);的结果为:
这一步得到控制器名MyController
strrchr($class,'\\')的结果为:
所以还需要substr从1的位置开始截取才的到控制器名称myController
4、相关补充
strrchr() 函数(在php中)查找字符在指定字符串中从右面开始的第一次出现的位置,如果成功,返回该字符以及其后面的字符,如果失败,则返回 NULL。与之相对应的是strchr()函数,它查找字符串中首次出现指定字符以及其后面的字符。
转载于:https://www.cnblogs.com/Renyi-Fan/p/11525328.html
legend3---laravel中获取控制器名称和方法名称相关推荐
- Codeigniter 获取当前的控制器名称和方法名称
在Codeigniter 可以通过下面两个方法获取当前的控制器名称和方法名称 $this->router->fetch_class(); $this->router->fetc ...
- 视图中获取控制器中数据的方式
在视图中获取控制器中数据的方式有两种: 一种是在控制器的操作中渲染视图时候分配模板数据,这种方式叫推送. 另外一种是在视图中手动获取控制器中的数据,包括控制器中的属性和方法及控制器id,通过$this ...
- android开发获取imei码,Android中获取IMEI码的方法
我们在开发项目的时候,通常要获取手机的IMEI码,这是开发的必备需求,接下来,爱站技术频道小编就告诉大家Android中获取IMEI码的方法,希望本文的介绍能提高大家的水平. 核心代码:Imei = ...
- android代码 IMEI,Android_Android中获取IMEI码的方法,核心代码:Imei = ((TelephonyManager) - phpStudy...
Android中获取IMEI码的方法 核心代码:Imei = ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)) .getDeviceId ...
- 【转】Java中获取文件大小的正确方法
[转]Java中获取文件大小的正确方法 本文出处:http://blog.csdn.net/chaijunkun/article/details/22387305,转载请注明.由于本人不定期会整理相关 ...
- php 什么函数获取ip,在PHP中获取ip地址的方法有哪些
在PHP中获取ip地址的方法有哪些 发布时间:2021-02-15 18:37:36 来源:亿速云 阅读:97 作者:Leah 这篇文章给大家介绍在PHP中获取ip地址的方法有哪些,内容非常详细,感兴 ...
- php 获取array的长度_php中获取数组长度的方法
php中获取数组长度的方法 php获取数组长度的方法,php为我们提供了两个函数可以计算一维数组长度,如count,sizeof都可以直接统计数组长度,还有获取二维数组的方法,在php中获取数组长度方 ...
- iphone中获取屏幕分辨率的方法
iphone中获取屏幕分辨率的方法 CGRect rect = [[UIScreen mainScreen] bounds]; CGSize size = rect.size; CGFloat wid ...
- php怎么取随机3位数字,php 从指定数字中获取随机组合的方法
本篇文章主要介绍php 从指定数字中获取随机组合的方法,感兴趣的朋友参考下,希望对大家有所帮助. 例如:给定数字100,需要随机获取3个组成这个数字的组合,例如70,20,10 代码如下: /** * ...
最新文章
- 敏捷开发实践总结(二):关于测试
- #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
- iOS32位唯一标识符
- BXNA在调试显示新闻的JS?
- GCC中SIMD指令的应用方法
- OGNL、EL表达式——Struts
- python 日志输出变量_python中记录打印的log模块logging的用法实例
- 剑指Offer55-II题解-平衡二叉树
- OpenShift 4 之 Image Registry、Image 和 ImageStream 概念和相关操作
- Struts2中的国际化
- [数据库]oracle导出数据库
- 埋点用例管理_API管理平台之系统设计篇
- JVM系列一:JVM内存组成及分配
- python复制文件到指定文件夹并重命名_python文件、文件夹的移动、复制、删除、重命名...
- 多个网站被挂菠菜黑链
- 微信小程序实战十三:狗狗小程序云搭建
- Python 程序员过中秋Python+pygame 制作拼图小游戏(附源码:5源码)
- python之数据库-表操作
- JavaScript指定长度和进制的UUID
- Java社招最全面试题,成功收获美团,小米offer