• Contact Us
Wednesday, December 21, 2022
-18 °c
Teman Ngoding
  • Home
  • Tutorial
    • Laravel
    • Codeigniter
    • PHP
    • Golang
    • Java
    • Javascript
    • React JS
    • SQL
    • Problem Solution
  • Video Tutorial
    • Video Laravel
    • Video Codeigniter
    • C++
    • Video Git
  • Events
  • Berita
  • Donate
  • Indonesia
    • English
No Result
View All Result
Teman Ngoding
  • Home
  • Tutorial
    • Laravel
    • Codeigniter
    • PHP
    • Golang
    • Java
    • Javascript
    • React JS
    • SQL
    • Problem Solution
  • Video Tutorial
    • Video Laravel
    • Video Codeigniter
    • C++
    • Video Git
  • Events
  • Berita
  • Donate
  • Indonesia
    • English
No Result
View All Result
Plugin Install : Cart Icon need WooCommerce plugin to be installed.
Teman Ngoding
No Result
View All Result

Menggunakan Scope di Laravel

admin by admin
April 28, 2022
in Laravel, Tutorial
0 0
0
Home Tutorial Laravel

This post is also available in: English

Hallo apa kabar teman semua, semoga sehat dan sukses selalu. Kali ini kita akan membahas Scope di Laravel, ini sangat bermanfaat untuk teman teman ketika membuat projek yang mempunyai banyak filter.

Sederhananya scope itu adalah query yang sudah kita buat dan digunakan kembali di modul lain, jadi dengan menggunakan scope kita tidak perlu lagi menulis query yang sama.

intinya laravel scope itu untuk mempermudah kita agar tidak menulis query yang sama berulang-ulang..

Laravel scope sendiri sebetulnya terdapat 2 jenis, yaitu Global Scope dan Local Scope..

Global Scope

Untuk global scope / Global Where sebelumnya kita sudah pernah membahas nya, silahkan kalian kunjungin artikel nya disini: Membuat Global Where Pada Eloquent Laravel..

Jadi dengan global scope, kita hanya perlu menulis query nya 1 kali saja didalam model nya, maka nanti secara otomatis query tersebut akan selalu terpanggil ketika kita menggunakan model tersebut, tanpa harus menulis lagi query nya..

Local Scope

Local Scope sebetulnya sama seperti global scope, hanya saja kita perlu memanggil initial scope nya kembali didalam query nya..

Misalkan sebagai contoh kita memiliki beberapa method yang menarik data Customer dengan ketentuan yang status nya aktif saja..

// method index 
public function index()
{
    $data = M_customer::where('is_active', 1)->get(); // menarik data customer yg status nya aktif
}
// method show 
public function show()
{
    $data = M_customer::where('is_active', 1)->get(); // menarik data customer yg status nya aktif
}

Pada 2 method diatas, didalam query nya kita sama-sama menarik data customer yang status nya aktif saja..

Itu baru 2 method, bagaimana kalo ternyata di controller lain kita juga akan menarik data customer yang aktif saja?? Maka kita akan menulis query where is_active=1 secara terus menerus dan berulang-ulang..

Tentu saja hal ini sangat tidak efisien, kenapa? karena kita menulis query yang sama secara berulang-ulang..

Coba bayangkan gimana kalau suatu saat ternyata kondisi nya berubah, yang awal nya is_active=1 kemudian berubah menjadi is_active=’active’.. Maka kita perlu merubah semua query nya pada setiap method dan pada setiap controller..

Solusi nya yaitu dengan menggunakan local scope..

Cara menulis Local Scope

kalian cukup menambahkan local scope pada model M_customer seperti berikut:

....
public function scopeActive($e)
{
    return $e->where('is_active', 1);
}
....

Kemudian di query nya kalian hanya perlu memanggil nya seperti berikut:

....
// method index 
public function index()
{
    $data = M_customer::active()->get(); // menarik data customer yg status nya aktif 
}
// method show 
public function show()
{
    $data = M_customer::active()->get(); // menarik data customer yg status nya aktif 
}
....

Terlihat lebih simple dan ringkas, yang awal nya selalu menulis ->where(‘is_active’,1).. sekarang hanya perlu menulis ->active() saja..

Dan jikapun nanti ada perubahan query nya, kita hanya perlu merubah di function scope nya saja..

Syarat penulisan Local Scope

Syarat penulisan Local Scope yaitu:

1. Diawali dengan kata scope pada nama function nya..

....
public function scopeActive($e){
....

2. nama function nya ditulis dengan gaya Camel Case

3. Pada saat pemanggilan scope nya didalam query, kita tidak perlu lagi menulis kata “scope”..

Cara membawa Parameter kedalam Scope

Misalkan kita ingin membuat nilai pada scope nya menjadi dinamis, kita bisa memberikan nya satu atau lebih parameter kedalam nya..

Misalkan sebagai contoh:

namespace App\Models;
 
use Illuminate\Database\Eloquent\Model;
 
class User extends Model
{
    /**
     * Scope a query to only include users of a given type.
     *
     * @param  \Illuminate\Database\Eloquent\Builder  $query
     * @param  mixed  $type
     * @return \Illuminate\Database\Eloquent\Builder
     */
    public function scopeOfType($query, $type)
    {
        return $query->where('type', $type);
    }
}
....
$users = User::ofType('admin')->get();
....

Demikian tutorial yang bisa saya sampaikan, semoga bermanfaat

Terimakasih…

Sumber : Menggunakan Scope di Laravel

Tags: cope laravellaravel
ShareTweetShare
admin

admin

Next Post
Bagaimana menggunakan align-right di Bootstrap 4

Bagaimana menggunakan align-right di Bootstrap 4

Leave a Reply Cancel reply

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

  • Trending
  • Comments
  • Latest
Tutorial CodeIgniter 4 part 1 ~ RESTful API JWT Authentication

Tutorial CodeIgniter 4 part 1 ~ RESTful API JWT Authentication

June 2, 2022
Codeigniter 4 ~ Membuat Notifikasi Menggunakan SweetAlert

Codeigniter 4 ~ Membuat Notifikasi Menggunakan SweetAlert

June 8, 2022
Tutorial Codeigniter 4 ~ Login dan Register

Tutorial Codeigniter 4 ~ Login dan Register

May 30, 2022
REST API Login dan Register Node.js dengan JWT

REST API Login dan Register Node.js dengan JWT

July 28, 2022
Tutorial Codeigniter 4 ~ Login dan Register

Tutorial Codeigniter 4 ~ Login dan Register

5
Rekomendasi tempat belajar pemrograman

Rekomendasi tempat belajar pemrograman

3
Menghilangkan Public dan Index.php dari URL Codeigniter 4

Menghilangkan Public dan Index.php dari URL Codeigniter 4

2
Membuat Sitemap Otomatis Codeigniter 4

Membuat Sitemap Otomatis Codeigniter 4

1
Access MongoDB With Node.JS

Akses MongoDB Dengan Node.JS

September 26, 2022
Teorema Structured Control

Basic Programming – Structured Control Theorem

September 23, 2022
WEB CRUD LocalStorage Menggunakan JavaScript

WEB CRUD LocalStorage Menggunakan JavaScript

September 22, 2022
DOM dan GOM Javascript

Perbedaan BOM Dan DOM Pada JavaScript

September 20, 2022
Teman Ngoding

Teman Ngoding tempat berbagi tutorial pemrograman
Read more

Categories

  • Berita
  • C++
  • Codeigniter
  • Events
  • Flutter
  • Golang
  • Java
  • Javascript
  • Laravel
  • MongoDB
  • News
  • Node JS
  • Pemrograman
  • PHP
  • Problem Solution
  • React JS
  • SQL
  • Tutorial
  • TypeScript
  • TypeScript
  • Video Codeigniter
  • Video Git
  • Video Laravel
  • Video Tutorial

Tags

ajax belajar golang belajar reactjs blog browser seluler Cara mendapatkan Uang dari Blog codeigniter codeigniter 3 codeigniter 4 codeigniter4 embed html Error Handling flutter flutter vs react native golang golang dasar html infinite scroll javascript javascript tutorial laravel laravel 8 laravel9 laravel 9 load more ajax Menggunakan Multiple select2 dan menyimpan dengan format json mongodb nodejs pdf pemrograman ajax pemrograman golang pemrograman php reactjs reactjs tutorial reactjs vs react native rest api rest api codeigniter 4 tutorial codeigniter 4 tutorial golang tutorial javascript tutorial laravel tutorial laravel 8 tutorial nodejs tutorial reactjs uang dari blog

Recent News

Access MongoDB With Node.JS

Akses MongoDB Dengan Node.JS

September 26, 2022
Teorema Structured Control

Basic Programming – Structured Control Theorem

September 23, 2022

© 2022 Teman Ngoding.

No Result
View All Result
  • Home
  • Tutorial
    • Laravel
    • Codeigniter
    • PHP
    • Golang
    • Java
    • Javascript
    • React JS
    • SQL
    • Problem Solution
  • Video Tutorial
    • Video Laravel
    • Video Codeigniter
    • C++
    • Video Git
  • Events
  • Berita
  • Donate
  • Indonesia
    • English

© 2022 Teman Ngoding.

Login to your account below

Forgotten Password?

Fill the forms bellow to register

All fields are required. Log In

Retrieve your password

Please enter your username or email address to reset your password.

Log In
  • English
  • Indonesia