Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Mengakses Kaedah Pengawal daripada Pengawal Lain dalam Laravel 5?

Bagaimana untuk Mengakses Kaedah Pengawal daripada Pengawal Lain dalam Laravel 5?

Susan Sarandon
Lepaskan: 2024-11-02 18:08:29
asal
763 orang telah melayarinya

How to Access Controller Methods from Another Controller in Laravel 5?

Kaedah Pengawal Akses daripada Pengawal Lain dalam Laravel 5

Apabila bekerja dengan berbilang pengawal dalam Laravel, mungkin perlu mengakses kaedah daripada satu pengawal dalam yang lain. Ini boleh dicapai melalui pelbagai pendekatan, masing-masing mempunyai kelebihan dan keburukan tersendiri.

Akses Terus

Satu kaedah ialah akses terus, yang melibatkan penghantaran nama pengawal dan kaedah yang anda ingin panggil sebagai hujah kepada fungsi app(). Sebagai contoh, dalam SubmitPerformanceController, anda boleh mengakses kaedah getPrintReport() PrintReportController seperti berikut:

<code class="php">$result = app('App\Http\Controllers\PrintReportController')->getPrintReport();</code>
Salin selepas log masuk

Walaupun pendekatan ini berfungsi, ia tidak dianggap sebagai amalan terbaik dan boleh membawa kepada isu organisasi kod.

Warisan

Pilihan lain ialah mewarisi PrintReportController dalam SubmitPerformanceController, membolehkan anda mengakses kaedah getPrintReport() secara terus. Walau bagaimanapun, pendekatan ini juga mewarisi semua kaedah lain daripada pengawal induk, yang mungkin tidak diingini.

<code class="php">class SubmitPerformanceController extends PrintReportController {
    // ...
}</code>
Salin selepas log masuk

Ciri

Penyelesaian yang lebih elegan melibatkan penggunaan ciri. Buat sifat yang mengandungi kaedah yang diingini (cth., app/Traits/PrintReport.php) dan laksanakan logik di sana. Selepas itu, masukkan sifat dalam SubmitPerformanceController dan PrintReportController menggunakan kata kunci penggunaan.

<code class="php">trait PrintReport {
    public function getPrintReport() {
        // Logic here
    }
}

class PrintReportController extends Controller {
    use PrintReport;
}

class SubmitPerformanceController extends Controller {
    use PrintReport;
}</code>
Salin selepas log masuk

Dengan memanfaatkan ciri, kedua-dua pengawal boleh mengakses kaedah getPrintReport() menggunakan $this->getPrintReport(). Pendekatan ini menggalakkan kebolehgunaan semula kod dan organisasi yang lebih baik.

Atas ialah kandungan terperinci Bagaimana untuk Mengakses Kaedah Pengawal daripada Pengawal Lain dalam Laravel 5?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan