Rumah >rangka kerja php >Laravel >Mari kita bincangkan tentang cara mengeluarkan mesej ralat pengesahan dalam projek laravel
Laravel ialah rangka kerja PHP yang popular digemari oleh ramai pembangun kerana dokumentasi yang sangat baik dan fungsi yang kaya. Dalam projek Laravel, ralat pengesahan input adalah perkara yang sangat penting. Artikel ini akan menerangkan cara mengeluarkan ralat pengesahan dalam projek Laravel.
Apabila mengesahkan input dalam Laravel, anda boleh menggunakan fungsi validator terbina dalam atau pengesahan tersuai. Tidak kira kaedah pengesahan yang digunakan, ralat pengesahan mungkin berlaku. Pada ketika ini, kami perlu membentangkan mesej ralat ini kepada pengguna dalam bentuk yang mudah difahami. Laravel menyediakan fungsi yang mengeluarkan maklumat ralat pengesahan untuk membantu kami mencapai matlamat ini.
Dalam Laravel, mengeluarkan mesej ralat pengesahan biasanya memerlukan tiga langkah berikut:
Sebelum pengesahan input, kita perlu Tentukan set peraturan pengesahan untuk memastikan data yang dimasukkan sepadan dengan jangkaan kami. Peraturan ini biasanya disimpan dalam kelas pengesah Laravel, tetapi juga boleh ditakrifkan dalam model. Contohnya:
$rules = [ 'name' => 'required|max:255', 'email' => 'required|email|unique:users|max:255', 'password' => 'required|confirmed|min:6|max:255', ];
Dalam contoh ini, kami mentakrifkan tiga peraturan pengesahan untuk mengesahkan kesahihan input nama, e-mel dan kata laluan masing-masing.
Seterusnya, kita perlu menggunakan fungsi pengesahan Laravel sendiri atau pengesah tersuai untuk mengesahkan data input. Apabila melakukan pengesahan, kita boleh menggunakan peraturan yang ditakrifkan dalam langkah sebelumnya. Contohnya:
$validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return redirect('/register') ->withErrors($validator) ->withInput(); }
Dalam contoh ini, kami menggunakan kelas Validator untuk mengesahkan semua data input dalam $request. Jika terdapat ralat pengesahan, mesej ralat disimpan sebagai kilat ke dalam sesi bersama-sama dengan data input asal dan pengguna dialihkan semula ke halaman pendaftaran menggunakan fungsi ubah hala.
Selepas mengubah hala semula ke halaman pendaftaran, kami perlu mengeluarkan mesej ralat pengesahan. Laravel menyediakan tiga kaedah untuk mengeluarkan mesej ralat pengesahan: menggunakan objek $errors, menggunakan fungsi getMessages atau menggunakan fungsi ralat. Contohnya:
// 使用$errors对象 @if ($errors->any()) <div class="alert alert-danger"> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif // 使用getMessages函数 @if (count($errors->get('name')) > 0) <div class="alert alert-danger"> <ul> @foreach ($errors->get('name') as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif // 使用errors函数 @if (count($errors->get('email')) > 0) <div class="alert alert-danger"> <ul> @foreach (errors()->get('email') as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif
Dalam contoh ini, kami menggunakan objek $errors, fungsi getMessages atau fungsi ralat untuk mengeluarkan mesej ralat pengesahan. Objek $errors ialah koleksi yang mengandungi semua mesej ralat pengesahan Fungsi getMessages boleh mendapatkan semua mesej ralat untuk medan yang ditentukan, dan fungsi ralat ialah kaedah contoh $validator dan mengembalikan koleksi mesej ralat.
Ringkasnya, untuk mengeluarkan maklumat ralat pengesahan dalam projek Laravel, kita perlu mentakrifkan peraturan pengesahan terlebih dahulu, dan kemudian menggunakan fungsi pengesah atau pengesahan tersuai yang disediakan oleh Laravel untuk mengesahkan data input. Jika terdapat ralat pengesahan, kami perlu menyimpan mesej ralat ke dalam sesi bersama-sama dengan data input asal dan menggunakan fungsi yang mengeluarkan mesej ralat pengesahan untuk menyampaikan mesej ralat kepada pengguna. Semoga artikel ini berguna kepada pembangun Laravel.
Atas ialah kandungan terperinci Mari kita bincangkan tentang cara mengeluarkan mesej ralat pengesahan dalam projek laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!