Belajar Laravel 11 | 7. Model

Web Programming UNPAS
6 May 202420:35

Summary

TLDRIn this informative tutorial, the host guides viewers through the process of transitioning from manual data handling to utilizing models in Laravel, a popular PHP framework. The lesson focuses on refactoring code to eliminate data duplication, introduces the concept of MVC architecture, and demonstrates how to create a 'Post' model class. It also covers the use of static methods for data retrieval and touches on the importance of namespaces and autoloading in organizing and managing classes within a Laravel application.

Takeaways

  • πŸ˜€ The video is a tutorial on Laravel, focusing on creating a model to handle data instead of manually sending arrays to views.
  • πŸ“ The speaker introduces the concept of MVC (Model-View-Controller) within Laravel, explaining its role in managing application logic and data flow.
  • πŸ”§ The tutorial demonstrates how to refactor routes to use a single data source for posts, eliminating duplication and simplifying data management.
  • πŸ“š It is explained that models are responsible for business logic, such as interacting with databases or APIs to retrieve or manipulate data.
  • πŸŽ“ The importance of understanding namespaces and autoloading in Laravel is emphasized to avoid class name conflicts and ensure classes are correctly loaded.
  • πŸ› οΈ The process of creating a 'Post' model is shown, including making it a static class with methods like 'all' to handle post data retrieval.
  • πŸ”„ The video covers how to move business logic from routes to models, which is a correct practice in MVC architecture for cleaner and more maintainable code.
  • πŸ‘‰ The use of static methods in the 'Post' class to encapsulate functionality, such as retrieving all posts or finding a post by its slug, is demonstrated.
  • πŸ“ˆ The tutorial touches on error handling, showing how to return a 404 page when a post is not found instead of displaying an error message.
  • 🌐 The script mentions the use of arrow functions and callbacks as a more concise way to write and use functions within the Laravel framework.
  • πŸ“ The video concludes with a reminder of the importance of understanding models, namespaces, and autoloading for effective Laravel development.

Q & A

  • What is the purpose of creating a model in Laravel as mentioned in the video?

    -The purpose of creating a model in Laravel is to manage data more efficiently by centralizing it in one place, reducing code duplication, and facilitating easier interaction between the data, routes, and views. This approach also aligns with the MVC (Model-View-Controller) design pattern, where the model handles the business logic and data management.

  • Why is it important to avoid duplicating data in the routes, as discussed in the video?

    -Avoiding data duplication in the routes is important because it ensures consistency. When data is duplicated, any updates or changes require modifications in multiple places, increasing the risk of errors and making the code harder to maintain.

  • How does the video suggest organizing data in Laravel to avoid duplication?

    -The video suggests organizing data by creating a class, like `Post`, that contains static methods to return the required data. This class acts as a model, centralizing the data so it can be accessed uniformly across different routes and views.

  • What is the MVC pattern, and how does it relate to Laravel as explained in the video?

    -The MVC (Model-View-Controller) pattern is a design pattern that separates an application into three interconnected components: the Model (data and business logic), the View (UI), and the Controller (handles user input). In Laravel, this pattern is followed to organize code more effectively, with models handling data, controllers managing requests, and views displaying the output.

  • Why is it necessary to move the `Post` class out of the routes file, according to the video?

    -It is necessary to move the `Post` class out of the routes file to adhere to the MVC pattern. The routes file should only handle the routing logic, while the `Post` class, as a model, should manage the data. This separation of concerns makes the code cleaner and more maintainable.

  • What is the significance of namespaces in Laravel, as discussed in the video?

    -Namespaces in Laravel are significant because they prevent class name conflicts, especially in large applications or when using third-party libraries. By organizing classes under specific namespaces, Laravel can differentiate between classes with the same name but in different contexts.

  • How does Laravel's autoloading feature assist in managing classes?

    -Laravel's autoloading feature automatically loads classes when they are needed, without requiring manual inclusion. This feature follows the PSR-4 standard and works by mapping the namespace of a class to its file path, ensuring that classes are easily accessible across the application.

  • What approach does the video recommend for handling single post retrieval in Laravel?

    -The video recommends moving the logic for retrieving a single post by slug into the model. This is done by creating a static method, `find`, in the `Post` model, which searches for the post based on the provided slug. This approach keeps the controller (or route) cleaner by delegating data retrieval to the model.

  • How does the video suggest handling errors when a post is not found?

    -The video suggests using Laravel's `abort` function to return a 404 error when a post is not found. This provides a user-friendly error message instead of a generic error, improving the overall user experience.

  • Why does the video introduce the concept of return types in the `find` method?

    -The video introduces return types in the `find` method to enforce that the method returns a specific data type, in this case, an array. This helps in catching errors early and ensures that the code behaves as expected, providing more reliable and maintainable code.

Outlines

00:00

πŸ“š Introduction to Laravel Model Creation

The script begins with a casual greeting and an introduction to a tutorial series on Laravel, a popular PHP web application framework. The main theme revolves around creating a model within Laravel, which is a key concept for managing data. The instructor, Sandi Kagalih, guides viewers through the process of transitioning from manual data handling using arrays to utilizing models for a more structured approach. This includes refactoring existing code to use a 'Post' class, which will streamline data management and prepare the application for more complex interactions within the router and views. The importance of understanding the MVC (Model-View-Controller) pattern is also highlighted as a foundational concept for building scalable applications.

05:01

πŸ”„ Refactoring to Use Laravel Models and MVC Pattern

This paragraph delves into the specifics of refactoring a Laravel application to use models instead of direct array manipulation. The script explains the need to consolidate data handling into a single source to avoid duplication and simplify data management. The process involves creating a 'Post' class with a static method to retrieve all posts, effectively encapsulating the data retrieval logic within the model itself. The paragraph also touches on the importance of the MVC pattern, explaining the roles of routing, controllers, and models in handling requests within a Laravel application. The goal is to move towards a more organized code structure that separates business logic from data presentation.

10:02

πŸ“ Implementing Autoloading and Namespaces in Laravel

The script continues with a detailed explanation of how to properly organize and reference models within a Laravel application. It covers the technical aspects of using namespaces to avoid class name conflicts, especially as the application grows in complexity. The paragraph explains the concept of autoloading, which is a feature in Laravel that automatically includes class files based on their namespace. The process of moving the 'Post' class into the 'App\Models' namespace is described, along with the necessary adjustments in the 'composer.json' file to ensure the autoloading works correctly. This step is crucial for maintaining a clean and maintainable codebase.

15:06

πŸ” Enhancing the Model with Static Methods for Data Retrieval

The focus shifts to improving the 'Post' model by adding static methods for retrieving specific posts based on a slug, which is a URL-friendly version of the post title. The script demonstrates how to move the logic for finding a single post from the route to the model, emphasizing the model's responsibility for business logic. It also discusses the use of the 'Arr' class from the Laravel support library to handle array operations within the model. The paragraph concludes with a practical example of implementing a 'find' static method within the 'Post' model, showcasing how to return a specific post or a 404 error if the post is not found.

20:07

πŸŽ“ Conclusion and Future Learning Opportunities

In the final paragraph, the script wraps up the tutorial with a brief recap of the concepts covered, including the creation and use of models, the importance of autoloading, and the use of namespaces. The instructor expresses hope that the viewers have gained a clear understanding of these topics and hints at further exploration of models and other advanced Laravel features in future episodes. The script ends on a light-hearted note, with a casual sign-off and the inclusion of background music, creating a friendly and engaging conclusion to the tutorial.

Mindmap

Keywords

πŸ’‘Laravel

Laravel is a free, open-source PHP web framework used for building web applications with an expressive, elegant syntax. It is one of the most popular PHP frameworks and is known for its robust features such as MVC architecture support, templating engine, and ORM. In the video, Laravel is the main framework being discussed, with the script focusing on creating models within it.

πŸ’‘Model

In Laravel, a model is a component of the MVC (Model-View-Controller) pattern that represents the data and the rules to manipulate that data. Models are primarily used for database interactions. The script discusses the creation of a 'Post' model, which is a representation of blog posts in a database.

πŸ’‘Controller

A controller in the context of Laravel's MVC pattern is responsible for handling user input and interactions, and for performing business logic. The script mentions that the route is currently acting as a controller, which is not ideal as it should be handled by a separate controller class.

πŸ’‘View

In the MVC architecture, a view is the component that displays the data to the user. The script does not explicitly mention views, but the concept is implied when discussing how data is returned from the model to be displayed.

πŸ’‘Routing

Routing in Laravel is the process of determining how a URL request is handled by the application. The script refers to 'routes' as the entry points in the application where the URL requests are mapped to specific functions or controllers.

πŸ’‘Autoloading

Autoloading in Laravel is a feature that automatically loads the required classes without the need to manually include or require them. The script discusses the importance of autoloading for the 'Post' model to be recognized by the framework.

πŸ’‘Namespace

A namespace in PHP is a way to organize code into logical groups and to prevent naming conflicts. The script explains the necessity of using namespaces to ensure that the 'Post' model is correctly identified and autoloaded by Laravel.

πŸ’‘Static Method

A static method in PHP is a method that belongs to a class rather than an instance of the class. The script mentions the creation of a static method 'all' in the 'Post' model to retrieve all posts, demonstrating the use of static methods for class-level functionality.

πŸ’‘Array

An array in PHP is a data structure that can hold multiple values. The script initially uses arrays to manually handle data before transitioning to a model-based approach. Arrays are also used in the context of error handling when a null value is accessed as an array.

πŸ’‘Error Handling

Error handling in PHP involves managing and responding to errors that occur during the execution of a script. The script discusses an example of error handling where a 404 page is displayed if a post is not found, instead of showing a technical error message.

Highlights

Introduction to creating a model in Laravel to automate data handling instead of manual array manipulation.

Explanation of the concept of MVC (Model-View-Controller) within Laravel framework.

Demonstration of refactoring routes to avoid data duplication and streamline data flow.

Introduction of a static method in a class to display all data entries for a more organized approach.

Conversion of manual data arrays into a class-based model for better data management.

Explanation of the auto-loading feature in Laravel for efficient class management.

Discussion on namespaces to avoid class name conflicts in large applications.

Step-by-step guide on creating a 'Post' model class to handle blog data.

Utilization of the 'use' statement to import classes in Laravel for cleaner code.

Introduction of the 'find' static method in the 'Post' model for retrieving specific blog entries.

Importance of using the 'Static' keyword for class methods that do not rely on instance properties.

Explanation of the error handling when a post is not found and returning a 404 page.

Use of arrow functions in PHP for cleaner and more concise callback functions.

Discussion on the benefits of using Laravel's built-in model features over custom model implementations.

Highlighting the need for proper error messages and handling null values in model methods.

Final thoughts on the importance of understanding Laravel's MVC structure for scalable application development.

Closing remarks and sign-off with a reminder to stay tuned for the next episode.

Transcripts

play00:00

Halo teman-teman semua apa kabar semoga

play00:01

semuanya dalam keadaan sehat dan

play00:03

berbahagia ya Mari kita lanjutkan

play00:04

kembali playlist belajar larfel 11 Kita

play00:07

Masih bersama saya sandi kagalih di

play00:09

channel wpu ya dan di video kali ini

play00:11

setelah sebelumnya kita sudah berhasil

play00:13

untuk membuat data dan mengirimkannya ke

play00:15

dalam view kita akan sama-sama belajar

play00:17

kali ini kita akan sama-sama belajar

play00:19

mengenai pembuatan sebuah model di dalam

play00:22

laravel jadi kita akan ubah data yang

play00:24

sudah kita kirimkan secara manual

play00:25

menggunakan array dari video sebelumnya

play00:27

itu kita akan Ubah menjadi model supaya

play00:29

kita bisa interaksikan di dalam

play00:31

routernya maupun di dalam view-nya dan

play00:33

nanti juga kita akan sedikit menyinggung

play00:35

mengenai konsep mvc yang ada di dalam

play00:37

larafil ya konsep mvc itu model view dan

play00:40

juga controller dan masih banyak lagi

play00:42

hal-hal yang nanti kita akan masukkan ke

play00:44

dalam materi di video kali ini jadi

play00:45

pasti seru banget ya jadi tanpa

play00:47

berlama-lama lagi kita langsung aja

play00:48

masuk ke materinya Oke teman-teman jadi

play00:51

di video kali ini yang akan kita lakukan

play00:53

adalah memperbaiki halaman post kita

play00:56

atau halaman blog kita agar menggunakan

play00:58

satu sumber data ya Kara saat ini

play01:00

teman-teman lihat di codingnya silakan

play01:02

dibuka dulu kodenya ya Nah ini ya

play01:04

teman-teman silakan buka halaman web

play01:06

atau routes kita kita tahu bahwa kita

play01:08

punya dua buah rute ya ada rute post

play01:11

untuk menampilkan seluruh data Post dan

play01:13

ada rute post yang singular Nah

play01:17

masing-masing dari rute ini menduplikat

play01:19

data postnya Nah kita akan tarik supaya

play01:23

datanya hanya satu enggak diduplikat ya

play01:25

supaya apa supaya nanti kalau ada

play01:26

perubahan atau penambahan data enggak

play01:29

perlu mengubah keduanya nah gimana

play01:31

caranya ini kan sebetulnya kita bisa

play01:33

tarik ke luuar ya ke atas ini misalkan

play01:36

kita bisa aja

play01:37

bikin variabel post di sini nah tapi

play01:41

supaya lebih mudah kita akan bungkus ke

play01:43

dalam sebuah kelas teman-teman ya kelas

play01:46

misalnya kita kasih namanya post ini

play01:49

kita kasih kelas namanya

play01:52

post Nah kenapa kita bikin kelas post

play01:55

nah ini supaya nanti ke depannya ketika

play01:57

kita mau masuk belajar mengenai model

play01:59

ini jadinya masuk akal gitu ya sekarang

play02:01

kita bikin dulu aja secara manual kita

play02:04

bikin CL post yang nanti di dalamnya

play02:06

Saya mau bikin sebuah metode statik

play02:08

untuk menampilkan seluruh data ya jadi

play02:10

misalkan kita bikin meod tuh gini kan ya

play02:12

akses modifier yang publ supaya bisa

play02:14

diakses di luar kelas ini pun ya Tapi

play02:16

sebelum function kita kasih Static dulu

play02:19

public Static function misalnya kita

play02:21

kasih namanya all ya ini untuk

play02:22

menampilkan seluruh data postingan kita

play02:26

nanti di sini di dalamnya kita

play02:28

kembalikan data kita langsung return aja

play02:31

data pos-nya ya jadi kita tinggal

play02:33

copykan isi dari posnya aja array-nya

play02:36

aja teman-teman Oke kita copykan

play02:39

array-nya aja atau kita cut ya kita Cut

play02:41

array-nya aja

play02:44

ambil dari post yang banyak dulu kita

play02:47

taruh di

play02:48

sini kita kasih koma

play02:50

ya dah jadi sekarang mengembalikan nilai

play02:54

sebuah array yang di dalamnya ada dua

play02:55

buah artikel Nah kalau sudah dibuat

play02:58

tinggal kita ganti ya sekarang searang

play03:00

kita ganti data yang dikirim itu kita

play03:03

ngambil dari kelas yang ada di atas cara

play03:05

nulisnya kalian tinggal tulis saja post

play03:07

nama kelasnya terus untuk memanggil

play03:10

metode statiknya teman-teman Tinggal

play03:12

Kasih titik du dua kali kita tulis nama

play03:14

metodenya all begini udah selesai jadi

play03:19

ini mengacu ke kelas post yang ada di

play03:20

atas all ini mengacu ke metode

play03:23

staticknya ya kalau kita jalankan kita

play03:26

lihat kita

play03:28

refresh masih aman ya tampil semuanya

play03:32

sekarang kita lakukan hal yang sama

play03:33

ketika kita mau mengambil data di

play03:36

halaman single post-nya Oke jadi kita

play03:38

enggak perlu lagi ini array post enggak

play03:40

butuh nanti kita hapus ya kita hapus

play03:43

jadi enggak butuh Nah ini kan error nih

play03:46

karena kita udah enggak punya variabel

play03:48

array tadi sekarang kita ambilnya dari

play03:50

mana kita ambil dari kelas post

play03:53

ambil metodenya all dah jadi sekarang

play03:56

sumber datanya hanya satu Class po saja

play03:59

ya kita Coba refresh klik aman ya Klik

play04:04

yang ini aman Oke jadi itu datanya

play04:07

Enggak lagi duplikat ini udah benar tapi

play04:09

problem berikutnya muncul kita enggak

play04:11

mungkin naruh kelas post di dalam root

play04:14

ya kan peruntukannya juga udah berbeda

play04:15

ya rute atau halaman web ini digunakan

play04:18

untuk melakukan penjaluran dari request

play04:20

Nah kita harus pindahin ini ke sebuah

play04:23

tempat selah kita akan mindahinnya ke

play04:25

mana nih sekarang sebelum kita pindahkan

play04:27

kita harus paham dulu di dalam travel

play04:30

itu konsep yang dinamakan dengan mvc

play04:32

atau model view controller karena PHP

play04:35

sebetulnya mengadopsi konsep tersebut

play04:37

walaupun enggak benar-benar mvc ya Nah

play04:39

mungkin kita bisa kembali dulu ke slide

play04:41

ya ini secara umum gambaran Bagaimana

play04:44

proses request yang terjadi di dalam

play04:46

larfel ya jika teman-teman lihat di

play04:48

sebelah kiri ada angka satu pertama kali

play04:50

user melakukan request misalkan Membuka

play04:52

halaman ya saya mengunjungi halaman Home

play04:54

atau saya mengunjungi halaman post jadi

play04:56

dia ketik di url atau klik sebuah tombol

play04:59

nah yang akan terjadi pertama kali

play05:01

adalah Lara fil-nya akan mengakses

play05:02

routing halaman rutee ya dalam hal ini

play05:04

web.php dia akan cari rutee mana yang

play05:07

sesuai kalau sudah ketemu misalkan

play05:09

halamannya slash atau halamannya slash

play05:11

po Nah nanti dia akan menjalankan sebuah

play05:14

proses yang biasanya prosesnya itu

play05:16

ditangani oleh sebuah controller nah

play05:18

tapi karena yang kita buat itu masih

play05:20

simpel prosesnya masih bisa ditangani

play05:22

oleh routernya jadi kita belum masuk nih

play05:24

ke controller jadi kita belum punya

play05:26

controller anggap aja rute yang kita

play05:28

buat itu saat ini menggantikan si

play05:31

controller ya Jadi ada controller yang

play05:33

mengendalikan prosesnya ambil data

play05:35

mengirimkan data itu di dalam e

play05:38

controller ya Nah nanti kalau sebuah

play05:40

controller ini butuh bisnis logic ya

play05:42

Istilahnya ya mengambil data dari

play05:44

database atau memproses sebuah query itu

play05:47

biasanya ditangani oleh model ya karena

play05:50

model itu bertugas untuk mengelola

play05:52

bisnis logic ya nanti kalau sudah dapat

play05:54

misalkan Saya butuh semua data post

play05:56

Nanti dia cek model ini terkoneksi ke

play05:58

database apa enggak atau datanya diambil

play06:00

dari mana sih Apakah dari database atau

play06:03

dari api atau misalkan datanya masih

play06:05

kita buat sendiri seperti contoh di

play06:07

episode kali ini ya itu model yang

play06:09

mengelolanya Nanti kalau udah dapat

play06:11

datanya dikembalikan lagi ke controller

play06:13

kalau butuh diproses diproses lagi

play06:15

setelah itu baru datanya dikirim ke view

play06:18

Nah dari view itu kembali lagi ke user

play06:21

ya Jadi ini skemanya yang terjadi ketika

play06:24

kita melakukan sebuah request Nah dengan

play06:26

contoh ini berarti kan tadi kelas pos

play06:28

yang kita punya itu harusnya kita

play06:30

representasikan ke dalam sebuah model

play06:33

karena dia mengelola data ya datanya

play06:35

berupa data postingan yang ke depannya

play06:38

Ketika nanti aplikasi kita jadi lebih

play06:40

kompleks Lagi enggak lagi ditulis dalam

play06:42

bentuk array tapi mungkin kita akan

play06:44

Simpan ke dalam database ya jadi sekali

play06:46

lagi kita akan representasikan ke dalam

play06:48

sebuah model Mari kita kembali ke

play06:50

codingan kita lagi nah jadi class post

play06:52

ini enggak akan ditulis di sini ya

play06:54

teman-teman boleh Cut atau kita bikin

play06:55

dulu sebuah file ya kita buat file-ya di

play06:57

dalam model ada di mana model

play07:00

model itu ada di dalam folder app lalu

play07:03

folder models Nah kalau teman-teman buka

play07:06

saat ini kita sudah punya satu model

play07:07

default yang namanya

play07:09

user.php Nah kalau teman-teman buka

play07:12

nanti di sini kita akan lihat bentuknya

play07:15

juga sebuah kelas kita abaikan dulu

play07:17

kelas-kelas lain yang dioad ke kelas ini

play07:19

ya ini kita abaikan dulu kita fokus di

play07:21

kelasnya dulu aja Jadi ada kelas namanya

play07:23

user ini juga kita abaikan extens

play07:25

auenticable karena ini ada hubungannya

play07:28

samaentikasi ya tapi yang pasti dia akan

play07:30

mengelola data user yang biasanya satu

play07:33

kelas ini dia merepresentasikan tabel

play07:36

yang ada di dalam database Jadi biasanya

play07:38

kalau kita punya model user larafel tuh

play07:40

secara default menganggap kita punya

play07:42

sebuah tabel yang namanya users ada

play07:45

s-nya gitu jadi kelas ini adalah versi

play07:49

singular dari tabel yang biasanya juga

play07:53

dia punya pasangan berupa migrasi jadi

play07:56

kalau teman-teman buka di database

play07:58

migrate

play08:00

Nah ada migrasi default yang namanya

play08:03

users gitu jadi migrasi ini untuk

play08:07

membuat tabel users dan pasangan

play08:10

modelnya adalah user enggak ada s-nya ya

play08:13

teman-teman ya Nah

play08:14

maka dengan contoh ini kalau kita mau

play08:17

bikin model post kita harus punya sebuah

play08:20

kelas kita bikin aja ya di dalam model

play08:22

namanya post

play08:24

ini yang isinya ini kita tutup dulu

play08:28

ambil dari class post yang ada di web

play08:31

Tadi silakan di-cut

play08:33

teman-teman Ini kita Cut kita masukkan

play08:36

ke dalam post buka dulu tag PHP tutupnya

play08:40

hapus kita bikin di sini

play08:44

udah ya kita udah punya modelnya nih Nah

play08:45

cuma Kan masalahnya sekarang rutee kita

play08:48

enggak kenal model post ini jadi dia

play08:51

enggak langsung otomatis bisa kita

play08:53

gunakan ya Coba kalau misalkan kita

play08:55

jalanin ya kita balik ke sini kita

play08:57

refresh tuh tuh Pasti error ya karena

play09:01

kelas post-nya enggak ketemu katanya nah

play09:03

gimana cara

play09:04

memperbaikinya kita akan manfaatkan

play09:07

proses autooading yang ada di dalam Lara

play09:10

file ya Jadi kalau misalkan teman-teman

play09:12

buka ya Di explorer-nya itu kita tutup

play09:14

dulu semua kita lihat di dalam file

play09:19

komposer.json itu kalau teman-teman

play09:22

lihat ada sebuah package atau ada sebuah

play09:25

fitur yang namanya autoload Nah jadi lar

play09:27

Fel ini sudah menganut otomatik loading

play09:30

kelas-kelas menggunakan standar psr4 Nah

play09:33

jadi semua kelas yang ada di dalam app

play09:35

Itu otomatis sebetulnya terbaca oleh

play09:37

larafel file post kita itu ada di dalam

play09:40

app kan Nah harusnya bisa terbaca nih

play09:43

Tapi kenapa enggak jalan karena clelas

play09:46

post kita harus kita simpan ke dalam

play09:48

sebuah

play09:49

namespace Apa itu namespace dia adalah

play09:52

sebuah teknik untuk menyimpan kelas kita

play09:54

ke dalam folder yang spesifik Kenapa

play09:57

supaya enggak bentrok dengan kelas lain

play09:59

yang namanya sama karena mungkin aja

play10:01

teman-teman ya karena larfel itu

play10:04

Framework yang cukup besar dan nanti

play10:05

kalau kalian bikin aplikasi yang cukup

play10:07

besar kalian Mungkin aja punya nama

play10:09

kelas yang sama Baik itu dengan

play10:11

kelas-kelas yang kalian buat sendiri

play10:13

ataupun dengan kelas-kelas yang dimiliki

play10:15

oleh larfel itu sendiri Nah makanya

play10:18

setiap kelas itu harus kita pisahkan ke

play10:20

dalam namespace kita sendiri supaya

play10:23

php-nya atau supaya laravelnya tahu

play10:25

kalau ini adalah kelas yang spesifik Nah

play10:28

makanya di atas ini kita kita harus

play10:29

tulis nih seperti user Nah kita harus

play10:31

tulis begini kita harus kasih tahu bahwa

play10:34

class post kita itu namespace-nya berada

play10:37

di app nulisnya tuh harus huruf besar ya

play10:40

backash models ini ya sama seperti ini

play10:44

nih Nah ini untuk ngasih tahu Lara

play10:47

fil-nya bahwa post ini berada di dalam

play10:50

folder app lalu di dalam folder models

play10:53

tu sehingga dia spesifik nih sekarang

play10:56

kalau sudah kita tulis secara spesifik

play10:59

tinggal kita gunakan di tempat yang kita

play11:01

butuhkan di mana Di dalam folder web

play11:04

gitu ya Nah caranya sebetulnya

play11:06

teman-teman tinggal tulis aja use lalu

play11:09

nama namespace-nya tapi kalau

play11:12

teman-teman melakukannya sudah benar

play11:14

kalau kita klik class post yang sudah

play11:17

kita tulis di dalam rute ini lalu kita

play11:19

Klik Kanan lalu kita pilih import class

play11:23

nah udah muncul nih di sini app model

play11:26

post sekarang kita bisa gunakan

play11:29

kita enggak lagi nulis langsung di dalam

play11:31

folder web-nya tapi kita sudah pindahkan

play11:33

ke namespace yang sesuai di mana di

play11:35

folder app model kelasnya

play11:38

post sekarang kalau kita jalanin

play11:41

harusnya benar lagi tuu ya Nah ini Udah

play11:44

ngambil dari model bukan lagi kita tulis

play11:46

di dalam file web-nya Mantap ya

play11:49

teman-teman ya berikutnya kita akan

play11:51

sedikit perbaiki model post kita supaya

play11:54

sekarang kita bisa melakukan pencarian

play11:56

post yang spesifik atau pencarian sing

play11:59

le post-nya menggunakan Static methode

play12:01

yang kita bikin Kalau sekarang kan

play12:03

proses pencariannya itu dilakukan di

play12:05

dalam rutenya kalau teman-teman Scroll

play12:08

Nah ini nih kita mencari post dengan

play12:11

melakukan ini ya Panggil fungsi array

play12:14

lalu kita lakukan pencarian gitu nah

play12:17

padahal ini adalah tugas dari model Nah

play12:21

kalau misalkan rute ini kita anggap

play12:22

sebagai controller sebetulnya ini bukan

play12:24

tugas dari controller melakukan

play12:26

pencarian atau melakukan perubahan data

play12:29

karena itu masuknya ke bisnis logic itu

play12:31

harusnya dibebankan pada model jadi

play12:33

bebannya harus ada di dalam model

play12:36

sehingga ini harus kita pindahin Gimana

play12:38

cara pindahinnya Coba teman-teman buka

play12:40

dulu model posnya lagi ini usernya close

play12:42

lagi ya komposernya juga close udah gak

play12:44

kita

play12:45

butuhin Sekarang kita akan bikin fungsi

play12:49

baru fungsi statik juga teman-teman

play12:51

kasih nama public Static

play12:55

function misalnya kita mau ambil apa

play12:58

atau kita mau bikin apa misalnya find

play13:00

gitu ya kita akan mencari sebuah post

play13:04

berdasarkan apa berdasarkan Slug gini di

play13:08

sini kita akan mengembalikan nah

play13:09

mengembalikan yang tadi yang ini jadi

play13:11

teman-teman boleh copy aja atau boleh

play13:13

Cut taruh di

play13:15

sini ya sekarang ini array-nya error

play13:18

kenapa karena kita enggak bisa

play13:20

menggunakan library array punya nyal R

play13:23

file supaya kita bisa pakai harus

play13:25

diapain harus kita use ya kita impimport

play13:28

knya

play13:29

pilih yang illuminate Nah ini nih

play13:31

membuktikan bahwa kelas arr itu ada dua

play13:35

di dalam seluruh library Lara file Nah

play13:37

kalau misalkan kita gak pakai namespace

play13:39

nih lihat ini pasti bck nama kelasnya

play13:41

sama karena kita pakai proses

play13:42

autoloading karena lar Fel kan pakai

play13:44

proses autooading ggak boleh ada dua

play13:46

kelas yang sama makanya harus kita

play13:48

pisahin pakai namespace yang kita mau

play13:50

pakai adalah yang ini yang illuminate

play13:51

support arr kalau sudahah dipilih pasti

play13:54

dia ada di atas sekarang Nah kita bisa

play13:57

pakai makanya ini enggak error

play14:00

ya Jadi panggil fungsi array cari elemen

play14:02

pertama dari post nah post tuh yang ini

play14:07

karena kita ada di dalam kelas yang sama

play14:09

teman-teman ggak nulis po tapi

play14:11

teman-teman nulisnya statik ya ini

play14:14

diganti jadi statik Kalau misalkan gak

play14:16

pakai statik itu kan biasanya kita

play14:18

tulisnya this Ya kalau dalam sebuah

play14:20

metod memanggil metode lain di kelas

play14:22

yang sama itu pakainya Dis Tapi karena

play14:24

kita pakainya statik nah Tulisnya

play14:26

langsung statik jadi ini manggil method

play14:28

all yang ada di kelas yang sama gitu

play14:31

jadi bebannya sekarang kita pindahkan ke

play14:33

sini tinggal di dalam web itu kalian

play14:37

tinggal panggil metodya panggil kelasnya

play14:40

ti2.2 find apa yang mau kita find Slug

play14:45

udah tu jadi lebih simpel ini ceritanya

play14:47

controller gitu ya kita anggap dulu

play14:48

sebagai controller si rute ini tugas dia

play14:51

hanya mencari abstraksinya kita

play14:54

pindahkan ke dalam post Coba kita save

play14:57

kita coba balik

play14:59

refresh klik aman ya tuh aman sudah oke

play15:05

paling kita bisa benerin gini ya

play15:07

teman-teman ya kalau misalkan balik ke

play15:08

sini ini kan kita pakai teknik fungsi

play15:12

callback dari video sebelumnya Kalau

play15:14

teman-teman ingat penjelasan kita kita

play15:16

menggunakan Slug karena dia variabel

play15:19

Global yang ada di sini ya kita enggak

play15:20

bisa kalau enggak pakai

play15:22

Slug bisa karena variabel yang kita

play15:25

tulis di dalam sebuah function itu hanya

play15:28

bisa dipakai di dalam function itu aja

play15:30

enggak bisa dia ngintip keluar ke sini

play15:31

enggak bisa Makanya karena Global dia

play15:34

taruh di sini kalau kalian enggak mau

play15:36

pakai use nah di Pap versi 8 itu ada

play15:39

teknik yang namanya arrow function sama

play15:41

kayak javascript kalau teman-teman udah

play15:43

tahu arow function di javascript PHP

play15:45

juga punya di dalam errow function-nya

play15:47

PHP mirip dengan javascript dia ggak

play15:49

punya konsep Scope ya kalau di javascrip

play15:52

tu ada Dis iphp juga sama enggak ada

play15:55

jadi kita bisa tulis begini ini kita

play15:57

hapus cara nulis errow F tuh kalian

play15:59

tulis FN kalau di php Terus parameternya

play16:03

apa ini mau pakai spasi mau enggak juga

play16:05

sama aja ya Misalnya kita tulis post

play16:08

untuk mpresentasikan satu buah post lalu

play16:11

kasih panah untuk arrow function-nya

play16:13

baru kita tulis return value-nya return

play16:16

value-ya tadi ya dolar post slag sama

play16:19

dengan slag Nah kalau di sini langsung

play16:22

bisa ditulis atau kita tulis dua baris

play16:24

dulu deh Biar teman-teman enggak bingung

play16:26

ya saya und dulu

play16:29

nah ini kita copy kita simpan di

play16:32

bawahnya aja nah ini saya ulang cara

play16:34

nulisnya jadi FN spasi post arrow

play16:38

function ini kita tinggal masukkan

play16:41

karena satu baris enggak perlu pakai

play16:43

return sama kayak arrow functionnya

play16:45

javascript ini kita taruh di sini ya

play16:48

Jadi sama aja caranya kalau mau pakai

play16:50

callback begini kalau mau pakai arrow

play16:52

function begini ini lebih ringkas saja

play16:54

tapi sekali lagi beban dari pencarian

play16:56

datanya Udah dipindahin ke model Ya aman

play17:01

sip masih sama nah ini kenapa kita buat

play17:03

manual pakai kelas terus namanya fine

play17:05

dan all nah ini supaya merepresentasikan

play17:07

ke depannya kita akan menggunakan fungsi

play17:10

laravel dengan nama metode yang sama itu

play17:12

nanti kalau kita udah menggunakan

play17:14

beneran model punyanya laravel Kalau ini

play17:16

kan model yang kita bikin sendiri kan

play17:18

belum ada fitur-fitur laravel-nya nih

play17:20

nanti modelnya laravel juga udah punya

play17:22

yang namanya all yang namanya fine udah

play17:25

punya juga ya Mantap ya paling terakhir

play17:28

gimana kalau misalnya post-nya enggak

play17:30

ada ahah kalau misalkan kita cari ini

play17:33

kita tulis sembarang Nah kan error ya

play17:36

nah gimana supaya enggak error kita

play17:39

kasih halaman 404 aja ketika posnya

play17:43

enggak ketemu gitu ya kan tulisannya

play17:45

trying to access array offset on null

play17:48

ini biasanya error pesan error yang

play17:50

cukup Ngeselin ya karena kita bingung

play17:52

salahnya di mana gitu kalau misalkan

play17:54

teman-teman mau sedikit memperbaiki

play17:56

supaya lebih yakin dengan apa yang

play17:59

dikembalikan oleh si meod-nya

play18:01

teman-teman bisa ngasih return type di

play18:04

sini bisa ngasih return type berupa

play18:05

array gitu supaya yakin yang

play18:07

dikembalikannya adalah array kalau bukan

play18:09

array contohnya Nul tadi kan bukan array

play18:11

maka pesan errornya akan lebih spesifik

play18:13

nih contohnya kalau saya refresh tuh

play18:17

buat yang senang Nulisnya pakai tipe ya

play18:19

bisa juga begini Jadi sekarang return

play18:21

value must be type of array katanya null

play18:24

return langsung ketahuan salahnya di

play18:26

mana gitu di sini nah kita harus

play18:28

perbaiki ini kalau teman-teman mau

play18:29

dihapus boleh juga ya Jadi yang pertama

play18:31

kita akan Simpan dulu ini ke dalam

play18:33

sebuah variabel ya jangan jangan dulu

play18:36

direturn kita simpan misalkan ke dalam

play18:38

variabel

play18:39

post gini nanti kita Cek jika postnya

play18:45

kosong kalian bisa tulis po sama dengan

play18:47

N0 atau not po juga bisa ya kita ambil

play18:49

nilai falsnya Nah kalau kosong gimana

play18:54

Kalau kosong kita kasih halaman 404 nah

play18:57

di lar sekarang ada tekniknya Dengan

play19:00

cara memanggil metode abard aja gitu

play19:03

kita kasih pesan atau kode pesannya

play19:06

adalah 404 gini supaya kalau enggak ada

play19:11

sekarang tampilnya 404 enggak tampil

play19:13

error kayak tadi gitu Ini kalau Kalau

play19:16

kosong ya tapi kalau ada nah ini kan

play19:20

masih error ya karena tadi belum kita

play19:22

kembalikan kalau ada kita return post G

play19:28

sip Jadi kalau ketemu tampilin tapi

play19:30

kalau enggak ketemu langsung kita

play19:32

tampilin

play19:33

404 nah sip baik teman-teman jadi itu

play19:37

tadi pembelajaran kita mengenai sedikit

play19:39

mengenai model ya walaupun Nanti ke

play19:41

depannya kita akan bahas lebih lanjut

play19:43

lagi mengenai model karena yang tadi

play19:45

hanya baru mencicipi aja gimana cara

play19:47

bikin model modelnya model kita sendiri

play19:49

lagi ya belum pakai modelnya laravel

play19:51

tapi selain itu juga kita tadi udah

play19:52

ngebahas sedikit mengenai fitur

play19:54

autoloading bawaannya larfel dan juga

play19:57

konsep namespace

play19:59

ya agar kita pada saat membuat kelas itu

play20:01

enggak bentrok dengan kelas-kelas yang

play20:03

lain yang ada di dalam frameworknya ya

play20:05

Jadi mungkin itu aja mudah-mudahan

play20:07

bermanfaat episode kali ini teman-teman

play20:08

dan mudah-mudahan teman-teman paham juga

play20:10

ya kita akan ketemu lagi di episode

play20:12

Berikutnya saya S gagali pamit dan

play20:13

seperti biasa jangan lupa

play20:16

[Musik]

play20:27

Tikom foreign

Rate This
β˜…
β˜…
β˜…
β˜…
β˜…

5.0 / 5 (0 votes)

Related Tags
LaravelModelMVCBlogDataManagementPHPCodingTutorialAutoloading