Laravel 8 验证输入,用于排除不在表中的数据,必须为大写,并格式化 id
Posted
技术标签:
【中文标题】Laravel 8 验证输入,用于排除不在表中的数据,必须为大写,并格式化 id【英文标题】:Laravel 8 validation input for excluding data which are not in a table, must be uppercase, and formatting id 【发布时间】:2021-08-11 19:18:23 【问题描述】:在 Laravel 8 中,我已经验证了在 public function store_notamasuk 中存储这样的数据:
Request()->validate([
'namabarang_supplier' => 'required',
'jumlahbarang_supplier' => 'required|numeric|min:1',
],[
'namabarang_supplier.required' => 'Nama barang wajib diisi!',
'jumlahbarang_supplier.required' => 'Jumlah barang wajib diisi!',
'jumlahbarang_supplier.numeric' => 'Jumlah barang harus angka!',
'jumlahbarang_supplier.min' => 'Jumlah barang minimal 1!',
]);
我已经验证了在 public function store_barang 中存储这样的数据:
Request()->validate([
'kodebarang' => 'required|unique:Barang,kodebarang|min:9|max:9',
'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!',
'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!',
]);
在 public 函数 store_notamasuk 中,我想要验证 namabarang_supplier 除了必需之外,如果在 Barang 表(namabarang 列)中找不到它们,我想进行验证,我输入了这个,未找到。
在公共function store_barang中,我想验证kodebarang 除了类似这段代码,我想验证kodebarang(id),它的格式必须是这样的:XXXX-0000(其中XXXX 不是数字,必须是字母大写,0000 不是字母,必须是数字)
我该怎么做?我仍然对制作这个感到困惑
【问题讨论】:
【参考方案1】:在 laravel 验证中,有针对特定类型模式的正则表达式模式验证。 你可以检查一下。 docs
【讨论】:
【参考方案2】:将此规则添加到您的 kodebarang
字段:regex:/[A-Z]4-\d4/
这将要求前四个字符是 A-Z(小写不会通过),然后是 -
字符,然后是 4 位数字。
对于namabarang_supplier
字段,我不太清楚您的要求,但如果在搜索其namabarang
列的Barang
表中找不到他们提供的输入,您似乎希望验证失败。如果这种理解是正确的,那么您应该为该字段使用以下规则:exists:Barang,namabarang
。
【讨论】:
以上是关于Laravel 8 验证输入,用于排除不在表中的数据,必须为大写,并格式化 id的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Laravel 5.1 中的表而不是“用户”表中对用户进行身份验证?
如何使用 Laravel 8 验证 MySQL 表中是不是存在哈希码