Saya mencoba memvalidasi array POST di Laravel:
$validator = Validator::make($request->all(), [
"name.*" => 'required|distinct|min:3',
"amount.*" => 'required|integer|min:1',
"description.*" => "required|string"
]);
Saya mengirim POST kosong dan mendapatkan ini if ($validator->fails()) {}
sebagai False
. Artinya validasi itu benar, tetapi sebenarnya tidak.
Bagaimana cara memvalidasi array di Laravel? Saat saya mengirimkan formulir denganinput name="name[]"
php
laravel
laravel-5.4
Darama
sumber
sumber
$request->validate([...])
. Pengecualian akan dimunculkan jika data gagal validasi.Saya memiliki array ini sebagai data permintaan saya dari grid / tabel data HTML + Vue.js:
Dan gunakan ini untuk memvalidasi mana yang berfungsi dengan baik:
sumber
Cara yang disarankan untuk menulis logika validasi dan otorisasi adalah dengan meletakkan logika tersebut di kelas permintaan terpisah. Dengan cara ini kode pengontrol Anda akan tetap bersih.
Anda dapat membuat kelas permintaan dengan menjalankan
php artisan make:request SomeRequest
.Di setiap
rules()
metode kelas permintaan, tentukan aturan validasi Anda:Di pengontrol Anda, tulis fungsi rute Anda seperti ini:
Setiap kelas permintaan dilengkapi dengan hook / metode pra dan pasca-validasi yang dapat disesuaikan berdasarkan logika bisnis dan kasus khusus untuk mengubah perilaku normal kelas permintaan.
Anda dapat membuat kelas permintaan induk untuk jenis permintaan serupa (misalnya
web
danapi
) permintaan dan kemudian merangkum beberapa logika permintaan umum di kelas induk ini.sumber
Data yang sedikit lebih kompleks, campuran jawaban @ Laran dan @Nisal Gunawardana
Aturan validasinya adalah
sumber
Anda harus melakukan loop pada array input dan menambahkan aturan untuk setiap input seperti yang dijelaskan di sini: Aturan Loop Over
Berikut adalah beberapa kode untuk Anda:
sumber