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-10-31 08:00:30
asal
642 orang telah melayarinya

How to Access a Controller Method from Another Controller in Laravel 5?

Cara Mengakses Kaedah Pengawal daripada Pengawal Lain dalam Laravel 5

Apabila bekerja dengan berbilang pengawal dalam Laravel, anda mungkin perlu mengakses kaedah dari satu pengawal dalam yang lain. Berikut ialah pelbagai pendekatan untuk mencapai matlamat ini:

Menggunakan Kaedah App::call()

Anda boleh mengakses kaedah menggunakan fungsi pembantu app():

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

Walau bagaimanapun, pendekatan ini tidak disyorkan kerana kebimbangan organisasi.

Melanjutkan Pengawal

Anda boleh mewarisi kaedah dengan melanjutkan pengawal yang lain:

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

Ini akan mewarisi semua kaedah daripada PrintReportController, yang mungkin tidak diingini.

Menggunakan Sifat

Pendekatan pilihan adalah untuk mencipta trait dengan logik yang diingini:

<code class="php">trait PrintReport {

    public function getPrintReport() {
        // .....
    }
}</code>
Salin selepas log masuk

Kemudian, masukkan trait dalam pengawal yang berkaitan:

<code class="php">class PrintReportController extends Controller {
     use PrintReport;
}

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

Ini membolehkan kedua-dua pengawal mengakses kaedah getPrintReport() melalui $this-> ;getPrintReport().

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!

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