Tutorial Laravel bahasa Melayu ini disambung dengan pemasangan LARAGON. Laragon adalah satu perisian kompilasi yang telah disediakan semua keperluan perisian pembangunan projek Laravel.

Rangka tutorial

  1. Membina MODEL (jadual pangkalan data /db)
  2. Membina VIEW (antaramuka pengguna)
  3. CONTROLLER & route
  4. Masukkan rekod baharu
  5. Senaraikan semua rekod
  6. Kemaskini rekod (akan datang)
  7. Kod Sumber dalam GITHUB – https://github.com/khirulnizam/start1

Sebarang applikasi web yang menjana laman web dinamik memerlukan pangkalan data. Kaedah penyambungan pangkalan data telah dibincangkan dalam tutorial Laravel 1. Kali ini kita cuma perlu menambah jadual (table) dalam DB yang sedia ada.


MEMBINA MODEL (jadual pangkalan data)

Laksanakan arahan berikut dalam command shell Laragon.

php artisan make:model Training –m

Arahan ini akan menyediakan dua item berikut dalam folde projek Laravel;

  1. Fail model Training.php
  2. Fail create_trainings_table migration

php-artisan-make-model

Dalam fail create_trainings_table, tulis kod berikut;

code-to-create-new-table-schema-laravel

Kembali ke command shell Laragon dan laksnakan arahan migrate. Arahan migrate akan membina jadual baharu dengan struktur seperti dalam create_trainings_table.

php artisan migrate

php-artisan-migrate

BINA ANTARAMUKA (Views) untuk masukkan rekod baharu

Rajah di bawah adalah antaramuka pengguna yang akan dibina untuk menerima input rekod yang baharu untuk disimpan dalam jadual yang baharau iaitu Training.

create-views-insert-record

Proses untuk membuat fail antaramuka tersebut;

  1. Buat satu folder untuk antaramuka trainings dalam folder resources >> views
  2. Tambah satu fail blade baharu dengan nama create.blade.php

create-blade-php

@extends('layouts.app')
@section('content')


<div class="container">
    

<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">Insert new Training</div>
<div class="card-body">
<form method="post" action="{{url('trainings')}}">
				@csrf
				  <label for="usr">Training Name</label>
				  <input type="text" class="form-control" name="trainingname">

				  <label for="pwd">Description</label>
				  <input type="text" class="form-control" name="desc">

				  <label for="pwd">Trainer</label>
				  <input type="text" class="form-control" name="trainer">
				  <button type="submit" class="btn btn-info"> Insert to DB </button>
				</form>


                    
                </div>


				
            </div>


        </div>


    </div>


</div>


@endsection

CONTROLLER & ROUTE

Seterusnya hubungkan antaramuka (create.blade.php) dengan pangkalan data, kita memerlukan Controller untuk melaksanakan aliran logik dan proses. Manakala route diperlukan sebagai laluan (path) kepada antaramuka/proses dalam Controller.

Untuk menambah Controller dalam modul Training ini, laksanakan arahan make:controller pada Command Shell.

php artisan make:controller TrainingController --resources

Arahan ini akan mecipta fail TrainingController.php. –resouces bermaksud semua path yang mungkin terlibat untuk fungsi-fungsi dalam modul Training akan diwujudkan sama.

php-artisan-make-controller

Dalam fail routes/web.php tuliskan baris kod di bawah seperti ditunjuk anak panah.

Route::resource('trainings','TrainingController');

route-trainings

Untuk menyenaraikan path kepada fungsi yang disediakan, laksanakan arahan route:list.

php artisan route:list

php-artisan-route-list

Perhatikan path yang disediakan disertakan ‘s’ dihujung (trainings). Path yang automatik disertakan adalah;

  • trainings.index (fungsi senaraikan rekod),
  • training.store (fungsi simpan rekod),
  • trainings.create (fungsi simpan rekod baharu),
  • trainings.update (fungsi perbaharui rekod sedia ada),
  • trainings.destroy (fungsi memadam rekod),
  • trainings.edit (fungsi borang kemaskini rekod).

Seterusnya, akan ditunjukkan bagaimana nak paparkan borang kemasukan rekod baharu yang telah disediakan kod dalam fail create.blade.php .

Buka fail TrainingController.php dalam folder app/Http/Controllers/ dan tambahkan baris kod berikut ke dalam function create() .

function-create-trainings

Untuk menyediakan butang/link kepada borang masuk rekod baharu, tambah kod berikut ke fail template, resources/views/layouts/app.blade.php .

create-link-on-template

Dalam form action pula, hantar rekod baharu ke link berikut untuk proses penyimpanan data ke pangkalan data (db).

form-action-link-create

Seterusnya dalam fail app/Training.php, isikan senarai lajur jadual yang terlibat. Rujuk rajah di bawah dan tambah kod berikut;

model-Training.php

Sekiranya kita rujuk kepada route:list, path ‘trainings’ akan menuju kepada fungsi store (simpan) sekiranya data dalam bentuk post.

Jadi seterusnya, tambah kod berikut dalam function store(), fail app/Http/Controllers/TrainingController.php. Kod di bawah merupakan proses simpan rekod dalam pangkalan data.

Masukkan baris berikut di bahagian atas TrainingController.php;

use App\Training; //include the namespace of Training.php

Baris 51: merupakan arahan redirect yang akan memaparkan semula borang, dengan membawa mesej rekod berjaya disimpan.

function-store

Seterusnya dalam fail app/Training.php, isikan senarai lajur jadual yang terlibat. Rujuk rajah di bawah dan tambah kod berikut;

model-Training.php

Alhamdulillah, selesai fungsi masukkan rekod baharu. Bagaimana nak uji? Klik pada link Insert ditunjukkan anak panah.

create-views-insert-record-arrow


SENARAIKAN REKOD

Sambungan latihan, menyenaraikan semua rekod dalam jadual. Kita akan menghasilkan antaramuka seperti di bawah.

Berdasarkan route:list, kita boleh buat penyenaraian dalam function index( ), fail app/Http/Controllers/TrainingController.php

Tulis kod berikut dalam function index( );

Antaramuka yang melibatkan pembentukan jadual dinamik beserta senarai rekod boleh dibina dalam fail resources/views/trainings/index.blade.php . Sekiranya fail blade in belum wujud, sila create new file.

 

@extends('layouts.app')
@section('content')

<div class="container">
    
<div class="row justify-content-center">
        
<div class="col-md-8">
            
<div class="card">
                
<div class="card-header">Listing Trainings</div>


                
<div class="card-body">
                    
<table class="table table-striped">
					
<thead>
					  
<tr>
						
<th>ID</th>

						
<th>Training Name</th>

						
<th>Desc</th>

						
<th>Action</th>

					  </tr>

					</thead>

					
<tbody>
					  @foreach($trainings as $training)
					  
<tr>
						
<td>{{$training['id']}}</td>

						
<td>{{$training['trainingname']}}</td>

						
<td>{{$training['desc']}}</td>

						
<td></td>

					  </tr>

					  @endforeach
					
<tbody>
					</table>

  
                </div>

            </div>

        </div>

    </div>

</div>

@endsection

Tambahkan link kepada antaramuka ini, buka fail resources/views/layouts/app.blade.php .

Cuba fungsi senarai semua rekod di sini;

 

Kod Sumber dalam GITHUB – https://github.com/khirulnizam/start1
[Tutorial ini dalam pembangunan,  – akan datang, fungsi kemaskini rekod… ]



Penulis tutorial:
KHIRULNIZAM ABD RAHMAN, Pensyarah Jabatan Sains Komputer, FSTM KUIS.

Beliau merupakan seorang trainer dalam bidang pengaturcaraan server dan antaramuka web (web front-end & backend) semenjak tahun 2000. Disamping itu juga amat berminat dalam pembangunan applikasi mobile Android, JSON, LARAVEL dan PHP-MySQL.

Blog peribadi beliau di khirulnizam.com . Beliau boleh dihubungi melalui email khirulnizam@gmail.com , atau Whatsapp: http://wasap.my/60129034614