Input id otomatis di laravel

Selamat siang, saya sedang membuat program gudang menggunakan laravel masih belajar, ada sedikit masalah untuk input ID nya. yang saya inginkan itu ketika input barang maka di form barang tsb ID barang otomatis terisi jadi tidak input manual ID nya itu gimana yah, saya cari2 i google kurang ngerti, kalo ada yg tau link nya tolong share yah hehe. barang.png
public function tambah(Request $request){

    	DB::table('barang')->insert([
    		
    		'nama_barang' => $request->nama_barang,
    		'harga' => $request->harga,
    		'stok' => $request->stok,
    		'berat' => $request->berat,
    		'kemasan' => $request->kemasan

    	]);

    	return redirect('stok_barang');
    }
avatar Obbytokun

@Obbytokun

164 Kontribusi 9 Poin


Jawaban

id nya di bikin auto increment aja bang di databasenya, kalau berurutan
avatar zainurfajar

@zainurfajar

13 Kontribusi 1 Poin

  • kalo mau di tambah huruf gimana bang, jadi kaya BRG001 - @Obbytokun
  • Bisa pake generator gan, ane pernah bikin kode unik otomatis kaya gitu - @ahanafi
  • siap nanti dicoba - @Obbytokun


id tidak boleh di isi user, di database kamu ceklis "auto increment" di field id Maka kamu bisa hapus input text ID di view kamu..
avatar budirahmat

@budirahmat

26 Kontribusi 1 Poin


coba tambah kolom baru misal id_barang setiap masuk ke form input barang get id barang yang terakhir di input, jika tidak ada kasih Kasih BRG001 jika ada pecah dulu kode barang nya untuk mendapat nomor terakhir baru +1
avatar sudjitoe

@sudjitoe

11 Kontribusi 11 Poin


Saya pernah bikin, logic-nya kaya yg dijelasin @sudjitoe, contoh sample nya kaya gini :
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use DB;

class JenisPotonganGaji extends Model
{
    protected $table = "jenis_potongan_gaji";
    protected $fillable = [
    	'uuid', 'kode', 'nama', 'keterangan'
    ];
    public $timestamps = false;
    public $incrementing = false;
    protected $primaryKey = 'uuid';

    public static function kode()
    {
    	$kode = DB::table('jenis_potongan_gaji')->max('kode');
    	$addNol = '';
    	$kode = str_replace("PGJ", "", $kode);
    	$kode = (int) $kode + 1;
        $incrementKode = $kode;

    	if (strlen($kode) == 1) {
    		$addNol = "000";
    	} elseif (strlen($kode) == 2) {
    		$addNol = "00";
    	} elseif (strlen($kode == 3)) {
    		$addNol = "0";
    	}

    	$kodeBaru = "PGJ".$addNol.$incrementKode;
    	return $kodeBaru;
    }

}
avatar ahanafi

@ahanafi

614 Kontribusi 357 Poin

  • lalu cara untuk saat masuk ke form peninputan supaya sudah terisi kolom id_barang nya gimana ya? - @rendyadhitya
  • Method tersebut tinggal di panggil ke view melalui Controller tentunya - @ahanafi
  • apakah bisa di berikan contoh nya caara memanggil nya saya kurang paham - @rendyadhitya


Model-nya : 
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use DB;

class JenisPotonganGaji extends Model
{
    protected $table = "jenis_potongan_gaji";
    protected $fillable = [
    	'uuid', 'kode', 'nama', 'keterangan'
    ];
    public $timestamps = false;
    public $incrementing = false;
    protected $primaryKey = 'uuid';

    public static function kode()
    {
    	$kode = DB::table('jenis_potongan_gaji')->max('kode');
    	$addNol = '';
    	$kode = str_replace("PGJ", "", $kode);
    	$kode = (int) $kode + 1;
        $incrementKode = $kode;

    	if (strlen($kode) == 1) {
    		$addNol = "000";
    	} elseif (strlen($kode) == 2) {
    		$addNol = "00";
    	} elseif (strlen($kode == 3)) {
    		$addNol = "0";
    	}

    	$kodeBaru = "PGJ".$addNol.$incrementKode;
    	return $kodeBaru;
    }

} 

Controlller : 
<?php

namespace App\Http\Controllers;
use App\JenisPotonganGaji;
use Illuminate\Http\Request;

class JenisPotonganGajiController extends Controller
{
    public function create()
    {
    	$kode = JenisPotonganGaji::kode();  <-- Pemanggilann method kode dari model JenisPotonganGaji
    	return view('jenisPotongan/create', ['kode' => $kode]);
    }
}

View-nya :
<div class="form-group row">
    <label for="kode" class="control-label col-sm-3">Kode</label>
    <div class="col-sm-9">
        <input class="form-control boxed" placeholder="Kode" required="required" name="kode" type="text" value="{{ $kode }}" id="kode" readonly>
        {!! $errors->first('kode', "<p class='invalid-feedback'>:message</p>") !!}
    </div>
</div>
avatar ahanafi

@ahanafi

614 Kontribusi 357 Poin


Login untuk gabung berdiskusi