日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

legend3---laravel中获取控制器名称和方法名称

發布時間:2025/7/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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中获取控制器名称和方法名称的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。