Rumah  >  Artikel  >  pembangunan bahagian belakang  >  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
Barbara Streisandasal
2024-10-30 02:59:29645semak imbas

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>

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>

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>

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>

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!

Kenyataan:
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