Masalah:
Dalam Laravel, anda mempunyai dua pengawal, SubmitPerformanceController dan PrintReportController. Anda ingin menggunakan kaedah, getPrintReport, daripada PrintReportController dalam SubmitPerformanceController. Bagaimanakah anda boleh mencapai ini?
Jawapan:
Terdapat beberapa pendekatan untuk mengakses kaedah pengawal merentas pengawal dalam Laravel 5:
Kaedah 1: Menggunakan app() Helper
<code class="php">app('App\Http\Controllers\PrintReportController')->getPrintReport();</code>
Pendekatan ini mendapatkan semula tika kelas PrintReportController dan melaksanakan kaedah getPrintReportnya secara langsung. Walaupun ia berfungsi, ia tidak disyorkan kerana kebimbangan organisasi.
Kaedah 2: Warisan
<code class="php">class SubmitPerformanceController extends PrintReportController { // ... }</code>
Dengan memperluaskan PrintReportController, SubmitPerformanceController mewarisi semua kaedahnya, termasuk getPrintReport. Walau bagaimanapun, pendekatan ini juga mewarisi semua kaedah lain, yang mungkin tidak diperlukan.
Kaedah 3: Ciri
Mencipta sifat (cth., aplikasi/Sifat) dianggap the最佳做法:`
<code class="php">trait PrintReport { public function getPrintReport() { // ... } } class PrintReportController extends Controller { use PrintReport; } class SubmitPerformanceController extends Controller { use PrintReport; }</code>
Dengan menggunakan ciri, SubmitPerformanceController boleh mengakses kaedah getPrintReport sebagai kaedah pengawal (cth., $this->getPrintReport()). Kedua-dua SubmitPerformanceController dan PrintReportController boleh mengakses getPrintReport dengan cara ini.
Atas ialah kandungan terperinci Cara Mengakses Kaedah Pengawal dalam Laravel 5: Panduan kepada Kaedah dan Amalan Terbaik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!