Postingan lainnya
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.
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');
}
5 Jawaban:
id nya di bikin auto increment aja bang di databasenya, kalau berurutan
Tanggapan
kalo mau di tambah huruf gimana bang, jadi kaya BRG001
Bisa pake generator gan, ane pernah bikin kode unik otomatis kaya gitu
siap nanti dicoba
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..
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
Saya pernah bikin, logic-nya kaya yg dijelasin <a href='https://sekolahkoding.com/user/sudjitoe'>@sudjitoe</a>, contoh sample nya kaya gini :
<pre> <?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')-&gt;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;
}
} </pre>
Tanggapan
lalu cara untuk saat masuk ke form peninputan supaya sudah terisi kolom id_barang nya gimana ya?
Method tersebut tinggal di panggil ke view melalui Controller tentunya
apakah bisa di berikan contoh nya caara memanggil nya saya kurang paham
<div>Model-nya : </div><pre><?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')-&gt;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;
}
} </pre><div><br>Controlller : </div><pre><?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]); } }</pre><div><br>View-nya :</div><pre><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></pre>
Tanggapan
terima kasih