Rumah > rangka kerja php > Laravel > laravel5 dapatkan kaedah pengawal

laravel5 dapatkan kaedah pengawal

WBOY
Lepaskan: 2023-05-26 19:18:37
asal
1111 orang telah melayarinya

Dalam Laravel 5, mendapatkan kaedah pengawal adalah operasi yang sangat asas dan biasa digunakan. Dalam sesetengah senario, kita mungkin perlu mendapatkan nama kaedah yang dilaksanakan oleh pengawal semasa. Jadi, bagaimana untuk mendapatkan kaedah pengawal dalam Laravel 5? Seterusnya, mari kita ketahui bersama.

1. objek $route

Dalam Laravel 5, objek $route menyimpan maklumat penghalaan pengawal yang sedang melaksanakan. Objek ini mengandungi URI yang diminta, kaedah permintaan, parameter penghalaan, dsb. Jika anda ingin mendapatkan nama kaedah pengawal semasa, anda boleh mendapatkannya melalui kaedah "getActionName" objek $route.

/**
获取当前控制器方法名称
**/
public function getCurrentMethodName() {
    $route = Route::getCurrentRoute();
    $action = $route->getActionName();
    $fragments = explode('@', $action);
    $method = end($fragments);
    return $method;
}
Salin selepas log masuk

Dalam kod di atas, kita mula-mula mendapatkan objek laluan semasa melalui kaedah Route::getCurrentRoute() dan kemudian gunakan kaedah "getActionName" objek $route untuk mendapatkan laluan penuh semasa kaedah pengawal, seperti " AppHttpControllersTestController@index". Seterusnya, kami menggunakan fungsi explode() untuk memintas bahagian nama kaedah, dan menggunakan fungsi end() untuk mendapatkan elemen terakhir tatasusunan, iaitu nama kaedah pengawal. Akhir sekali, kembalikan nama kaedah.

2. Refleksi

Selain menggunakan objek $route, kita juga boleh mendapatkan kaedah pengawal melalui mekanisme refleksi PHP. Mekanisme refleksi PHP menyediakan kelas ReflectionClass, yang boleh digunakan untuk mendapatkan maklumat berkaitan kelas, termasuk kaedah, sifat, pemalar, dsb. Melalui ReflectionClass, kita boleh mendapatkan nama kaedah pengawal semasa.

/**
获取当前控制器方法名称
**/
public function getCurrentMethodName() {
    $controller = Route::current()->getController();
    $reflection = new ReflectionClass($controller);
    $method = $reflection->getMethod(Route::currentRouteAction());
    return $method->name;
}
Salin selepas log masuk

Dalam kod di atas, kita mula-mula mendapatkan objek contoh pengawal semasa, dan kemudian menggunakan kelas ReflectionClass untuk mendapatkan maklumat pantulan objek contoh. Seterusnya, dapatkan kaedah yang sedang dilaksanakan melalui kaedah getMethod() bagi contoh pantulan. Akhir sekali, gunakan atribut nama kaedah refleksi untuk mendapatkan nama kaedah dan mengembalikannya.

Ringkasan

Di atas ialah dua cara untuk mendapatkan kaedah pengawal dalam Laravel 5. Tidak kira kaedah yang digunakan, ia akan memberikan kami kaedah operasi yang sangat pantas dan mudah, membolehkan kami mengawal pelaksanaan pengawal dengan lebih baik. Jika anda mempunyai soalan tentang pembangunan Laravel 5 atau perlu mengetahui lebih lanjut tentang Laravel 5, sila lihat dokumentasi atau tutorial rasmi. Menguasai keupayaan pembangunan Laravel 5 akan membantu anda memperoleh kelebihan dalam bidang pembangunan web dengan cepat.

Atas ialah kandungan terperinci laravel5 dapatkan kaedah pengawal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan