Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Mengakses Kaedah daripada Satu Pengawal dalam Pengawal Lain dalam Laravel 5?

Bagaimanakah Saya Boleh Mengakses Kaedah daripada Satu Pengawal dalam Pengawal Lain dalam Laravel 5?

Barbara Streisand
Lepaskan: 2024-10-30 02:59:29
asal
724 orang telah melayarinya

How Can I Access Methods from One Controller in Another Controller in Laravel 5?

Mengakses Kaedah Pengawal Merentas Pengawal dalam Laravel 5

Apabila bekerja dengan berbilang pengawal dalam Laravel, mungkin terdapat senario di mana anda perlu mengakses kaedah daripada satu pengawal dalam yang lain . Ini boleh dicapai melalui pelbagai teknik, seperti yang digariskan di bawah.

Menggunakan Fasad Apl

Pendekatan ini melibatkan akses kepada kaedah pengawal secara terus menggunakan fasad Apl:

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

Sementara ini berfungsi, ia tidak disyorkan untuk tujuan organisasi kod.

Warisan

Pilihan lain ialah mewarisi pengawal yang mengandungi kaedah yang diingini. Contohnya, jika SubmitPerformanceController perlu mengakses kaedah getPrintReport daripada PrintReportController:

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

Walau bagaimanapun, pendekatan ini boleh membawa kepada pewarisan kaedah yang tidak perlu.

Sifat

Sifat ialah penyelesaian pilihan untuk berkongsi fungsi biasa antara pengawal tanpa kelemahan warisan. Begini cara menggunakan ciri:

Buat Sifat

Tentukan sifat dalam apl/Sifat:

<code class="php">trait PrintReport {

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

Sertakan Sifat dalam Pengawal

Tambahkan sifat pada kedua-dua pengawal:

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

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

Dengan pendekatan ini, kedua-dua pengawal boleh mengakses kaedah getPrintReport melalui $this->getPrintReport().

Petua Tambahan

  • Pertimbangkan ruang nama pengawal yang anda akses.
  • Laluan boleh terus menggunakan kaedah pengawal jika ia dipetakan dalam route.php.
  • Untuk mendapatkan maklumat lanjut tentang ciri, rujuk dokumentasi rasmi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Kaedah daripada Satu Pengawal dalam 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