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.

   

Wahyu Amaldi, M.Kom has written 178 articles

Hallo Pembaca,
Saya merupakan konsultan di dunia SAP dan merupakan Spesialis .Net Programming.
Saya gemar berbagi pengalaman mengenai SAP & Dunia Programming, dan jika ada sesuatu yang perlu ditanyakan, bisa hubungi saya di email berikut ini:

Email 1 : wahyu.amaldi@outlook.com
Email 2 : wahyu.amaldi@ilmuprogram.com

Semoga Artikel yang Anda baca di website ini berguna dan dapat membantu Anda dalam menemukan solusi.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>