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.
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; }
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.
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; }
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.
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!