Laravel menyediakan cara mudah untuk mengendalikan pengesahan borang, memastikan input pengguna adalah sah sebelum diproses. Walau bagaimanapun, kadangkala ralat pengesahan mungkin tidak muncul pada halaman paparan.
Salah satu sebab biasa ialah tiada perisian tengah. Dalam Laravel 5.2.27 dan lebih tinggi, perisian tengah "web", yang mengendalikan perlindungan sesi dan CSRF, digunakan secara automatik pada semua laluan dalam fail route.php.
Jika anda mempunyai menambahkan perisian tengah "web" secara manual pada laluan anda, seperti:
Route::group(['middleware' => 'web'], function () { // Routes go here });
cuba alih keluarnya. Ini memastikan perisian tengah "web" hanya digunakan sekali, mengelakkan konflik.
Jika mengalih keluar perisian tengah "web" tidak menyelesaikan isu, pastikan peraturan pengesahan adalah ditakrifkan dengan betul dalam pengawal dan bahawa blok mesej ralat dalam paparan diletakkan dan dipaparkan dengan betul.
Blok mesej ralat dalam templat bilah anda hendaklah diletakkan di luar sebarang gelung atau pernyataan bersyarat untuk memastikan ia sentiasa boleh diakses untuk memaparkan ralat. Contoh berikut menunjukkan peletakan yang betul:
@if(count($errors) > 0) <div class="row"> <div class="col-md-4 col-md-offset-4 error"> <ul> @foreach($errors->all() as $error) <li>{{$error}}</li> @endforeach </ul> </div> </div> @endif
Dengan mengikuti petua ini, anda boleh memastikan bahawa ralat pengesahan dipaparkan dengan betul dalam halaman paparan bilah anda, memberikan pengguna anda maklum balas yang jelas tentang sebarang input yang tidak sah.
Atas ialah kandungan terperinci Mengapa Ralat Pengesahan Laravel 5.2 Saya Tidak Ditunjukkan dalam Templat Blade Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!