Rumah >rangka kerja php >Laravel >Apakah kaedah yang dilakukan oleh pengawal panggilan laravel?

Apakah kaedah yang dilakukan oleh pengawal panggilan laravel?

DDD
DDDasal
2023-08-10 13:58:521687semak imbas

Laravel memanggil kaedah pengawal seperti berikut: 1. Panggilan laluan, gunakan definisi laluan untuk menentukan URL yang diminta dan kaedah pengawal yang sepadan 2. Panggilan Middleware, lakukan beberapa operasi sebelum atau selepas permintaan mencapai kaedah pengawal, anda boleh Gunakan middleware dalam pengawal untuk memanggil kaedah pengawal lain 3. Panggilan fungsi tambahan, gunakan fungsi tambahan untuk memanggil kaedah pengawal lain antara kaedah pengawal 4. Panggilan suntikan ketergantungan, anda boleh menyuntik parameter yang diminta terus ke kaedah pengawal untuk memanggil kaedah pengawal; .

Apakah kaedah yang dilakukan oleh pengawal panggilan laravel?

Persekitaran pengendalian artikel ini: sistem Windows 10, versi Laravel 9.x, komputer Dell G3.

Dalam Laravel, kaedah pengawal boleh dipanggil dalam pelbagai cara. Beberapa kaedah biasa dibincangkan di bawah.

Melalui kaedah pengawal panggilan

Dalam Laravel, penghalaan ialah cara utama untuk memanggil kaedah pengawal. Anda boleh menggunakan definisi laluan untuk menentukan URL yang diminta dan kaedah pengawal yang sepadan. Berikut ialah contoh:

Route::get('/user/{id}', 'UserController@show');

Dalam contoh di atas, apabila pengguna meminta /user/{id}, kaedah tunjukkan pengawal UserController dipanggil, menghantar id yang diminta sebagai parameter kepada kaedah tersebut.

Perisian tengah pengawal memanggil kaedah pengawal

Laravel menyediakan fungsi perisian tengah yang boleh melakukan beberapa operasi sebelum atau selepas permintaan mencapai kaedah pengawal. Middleware boleh digunakan dalam pengawal untuk memanggil kaedah pengawal lain. Berikut ialah contoh:

class UserController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth')->only(['edit', 'update']);
    }
    public function edit($id)
    {
        // 编辑用户信息
    }
    public function update(Request $request, $id)
    {
        // 更新用户信息
    }
}

Dalam contoh di atas, kaedah edit dan kemas kini pengawal UserController hanya akan dipanggil selepas disahkan oleh perisian tengah auth.

Fungsi pembantu pengawal memanggil kaedah pengawal

Laravel juga menyediakan beberapa fungsi pembantu yang boleh digunakan untuk memanggil kaedah pengawal lain antara kaedah pengawal. Berikut ialah beberapa fungsi tambahan yang biasa digunakan:

fungsi tindakan: URL yang boleh memanggil kaedah pengawal yang ditentukan. Contohnya: action('UserController@show', ['id' => 1]).

fungsi ubah hala: Anda boleh mengubah hala permintaan ke kaedah pengawal yang ditentukan. Contohnya: return redirect()->action('UserController@show', ['id' => 1]).

Suntikan kebergantungan pengawal memanggil kaedah pengawal

Dalam Laravel, anda boleh menggunakan suntikan kebergantungan untuk memanggil kaedah pengawal. Sebagai contoh, parameter permintaan boleh disuntik terus ke dalam kaedah pengawal. Berikut ialah contoh:

class UserController extends Controller
{
    public function show(User $user)
    {
        // 显示用户信息
    }
}

Dalam contoh di atas, Laravel menghuraikan model Pengguna secara automatik dan menghantar contoh Pengguna yang diminta kepada kaedah paparan.

Ringkasan

Cara untuk memanggil kaedah pengawal dalam Laravel termasuk panggilan penghalaan, panggilan middleware, panggilan fungsi tambahan dan panggilan suntikan kebergantungan. Bergantung pada keperluan dan senario khusus, anda boleh memilih cara yang sesuai untuk memanggil kaedah pengawal.

Atas ialah kandungan terperinci Apakah kaedah yang dilakukan oleh pengawal panggilan laravel?. 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