Laravel 8如何实现数据表存在校验与固定格式ID验证规则
实现方案
一、修改store_notamasuk方法验证逻辑
给namabarang_supplier字段追加Laravel内置的exists验证规则,即可校验输入值是否存在于指定表的对应字段:
- 验证规则追加
exists:Barang,namabarang - 新增对应的印尼语错误提示即可
修改后完整代码如下:
Request()->validate([ 'namabarang_supplier' => 'required|exists:Barang,namabarang', 'jumlahbarang_supplier' => 'required|numeric|min:1', ],[ 'namabarang_supplier.required' => 'Nama barang wajib diisi!', 'namabarang_supplier.exists' => 'Nama barang tidak terdaftar di sistem!', 'jumlahbarang_supplier.required' => 'Jumlah barang wajib diisi!', 'jumlahbarang_supplier.numeric' => 'Jumlah barang harus angka!', 'jumlahbarang_supplier.min' => 'Jumlah barang minimal 1!', ]);
提示:如果你的Barang模型对应数据库表名不是
Barang,请把exists规则里的表名替换成实际的表名即可。
二、修改store_barang方法验证逻辑
给kodebarang字段追加regex正则验证规则,匹配你要求的XXXX-0000格式:
- 正则规则使用
/^[A-Z]{4}-[0-9]{4}$/,可精准匹配前4位大写英文字母、中间半角横杠、后4位数字的格式 - 为了避免正则中的特殊字符和Laravel验证规则的分隔符
|产生解析冲突,建议把kodebarang的验证规则改为数组形式 - 新增对应的格式错误提示即可
修改后完整代码如下:
Request()->validate([ 'kodebarang' => [ 'required', 'unique:Barang,kodebarang', 'min:9', 'max:9', 'regex:/^[A-Z]{4}-[0-9]{4}$/' ], 'namabarang' => 'required', 'hargapenjualan' => 'required|numeric|min:1', 'hargapembelian' => 'required|numeric|min:1', ],[ 'kodebarang.required' => 'Kode barang wajib diisi!', 'kodebarang.unique' => 'Kode barang ini sudah ada!', 'kodebarang.min' => 'Kode barang harus 9 karakter dengan "-" di tengahnya!', 'kodebarang.max' => 'Kode barang harus 9 karakter dengan "-" di tengahnya!', 'kodebarang.regex' => 'Kode barang harus berformat XXXX-0000 (4 huruf kapital di depan, 4 angka di belakang dipisahkan tanda hubung)!', 'namabarang.required' => 'Nama barang wajib diisi!', 'hargapenjualan.required' => 'Harga penjualan wajib diisi!', 'hargapenjualan.numeric' => 'Harga penjualan harus angka!', 'hargapenjualan.min' => 'Harga penjualan tidak boleh 0 atau kurang dari 0!', 'hargapembelian.required' => 'Harga pembelian wajib diisi!', 'hargapembelian.numeric' => 'Harga pembelian harus angka!', 'hargapembelian.min' => 'Harga pembelian tidak boleh 0 atau kurang dari 0!', ]);
内容的提问来源于stack exchange,提问作者Pup In The Tree
相关产品推荐
相关产品推荐

