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

Susan Sarandon
Lepaskan: 2024-10-31 08:00:30
asal
553 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!

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