Входные данные проверки Laravel 8 для исключения данных, которых нет в таблице, должны быть прописными и идентификатором форматирования

#php #laravel #validation #laravel-8

Вопрос:

В Laravel 8 у меня есть проверка для хранения подобных данных в общедоступной функции 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!',
        ]);
 

И у меня есть проверка для хранения подобных данных в общедоступной функции 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!',
        ]);
 

В общедоступной функции store_notamasuk я хочу проверить namabarang_supplier помимо требуемого, я хочу выполнить проверку, если они не найдены в таблице Barang (столбец namabarang), происходит так, что то, что я ввел, не найдено.

В общедоступной функции store_barang я хочу проверить кодебаранг помимо подобного этого кода, я хочу проверить кодебаранг (идентификатор), его формирование должно быть таким: XXXX-0000 (где XXXX не является числом и должен быть буквенным и прописным, а 0000 не является буквой и должен быть пронумерован)

Как я могу это сделать? Я все еще не понимаю, как это сделать

Ответ №1:

Добавьте это правило в свое kodebarang поле: regex:/[A-Z]{4}-d{4}/

Для этого потребуется, чтобы первые четыре символа были A-Z (нижний регистр не пройдет), затем - символ, затем 4 цифры.

Что касается namabarang_supplier поля, я не совсем понимаю ваши требования, но, похоже, вы хотите, чтобы проверка завершилась неудачей, если ввод, который они предоставляют, не найден в Barang таблице при поиске по ее namabarang столбцу. Если это правильное понимание, то вот правило, которое вы должны использовать для этого поля: exists:Barang,namabarang .

Ответ №2:

В проверке laravel существует проверка шаблона регулярных выражений для определенного типа шаблона. Вы можете это проверить. Документы