Starter Template Code - Cara Cepat Memulai Code Laravel (Bag. 1) | ILMU PROGRAMMER
Home » Starter Template Code – Cara Cepat Memulai Code Laravel (Bag. 1)

Starter Template Code – Cara Cepat Memulai Code Laravel (Bag. 1)

Hi, Berikut merupakan catatan pribadi penulis ketika memulai project menggunakan Laravel.

[1] Buat 1 Folder Models di App/Models lalu setiap menambahkan file model copy paste dan sesuaikan template dibawah ini:

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class md_bp extends Model
{
    protected $table = 'md_bp';
    protected $primaryKey = ['client', 'bpid'];
    //fillable berguna untuk mendaftarkan atribut (nama kolom) yang bisa kita isi ketika melakukan insert atau update ke database
    protected $fillable = ['client',
                            'bpid', 'bpname'];
    public $incrementing = false;
    protected $keyType = 'string';
    public $timestamps = true; //created_at otomatis terisi
    //Kita biasa menyimpan tipe data boolean sebagai tinyint di database. 
    protected $casts = [
        'status'   => 'boolean'
    ];
}

[2] Berikut merupakan cara untuk insert model di controller laravel

use App\Models\md_bp;
....
$vmd_bp = new md_bp;
$vmd_bp->client = $request->client;

$vmd_bp->bpid = $request->bpid;

$vmd_bp->bpname = $request->bpname;
$vmd_bp->save();

[3] Berikut merupakan cara update data menggunakan model di controller laravel

App\Models\md_bp::where('client', '12121')
          ->where('bpid', '1212121')
          ->update(['bpname' => 'Nama Ucok']);

[4] Berikut merupakan cara Create / Update secara otomatis menggunakan laravel

$flight = App\Models\md_bp::updateOrCreate(
    ['client' => '12121', 'bpid' => '1212121'],
    ['bpname' => 'WAHYU AMALDI']
);

[5] Jika ingin melakukan hapus data

$deletedRows = App\Models\md_bp::where('client', '12121')->delete();

[6] Membuat Aturan Query / Query Scopes
Buat folder App/Scopes pada App lalu ketik code berikut:

<?php

namespace App\Scopes;

use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Scope;

class bpidScope implements Scope
{
    /**
     * Apply the scope to a given Eloquent query builder.
     *
     * @param  \Illuminate\Database\Eloquent\Builder  $builder
     * @param  \Illuminate\Database\Eloquent\Model  $model
     * @return void
     */
    public function apply(Builder $builder, Model $model)
    {
        $builder->where('bpid', '=', '121212');
    }
}

Tambahkan di model yang akan dikoneksikan dengan global scope nya, misalkan model di point [1] kita tambahkan:

protected static function booted()
    {
        static::addGlobalScope(new bpidScope);
    }

Atau bisa juga manual dibuat di modelnya langsung:

protected static function booted()
    {
        static::addGlobalScope('bpid', function (Builder $builder) {
            $builder->where('bpid', '=', '121212');
        });
    }

Maka ketika kita melakukan query di controller md_bp::all() menjadi

select * from `md_bp` where `bpid` = '121212'

Jika kondisi nya anda tidak ingin menggunakan global scope maka ketik:

md_bp::withoutGlobalScope(bpidScope::class)->get();

Atau bisa juga

md_bp::withoutGlobalScope('bpid')->get();

Oke, sampai disini dulu ya,
Semoga bermanfaat.

Leave a Comment

 
Open chat
Perlu Bantuan Konsultasi ?
Hallo Pembaca.
Telp (021) 55670115 untuk terhubung langsung dengan kami.

Apakah ada yang bisa kami bantu?