X
    Categories: laravel

Tutorial CRUD Pengenalan Laravel

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

Dalam fail create_trainings_table, tulis kod berikut;

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

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.

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

@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 >
 

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 --resource Arahan ini akan mecipta fail TrainingController.php. --resouces bermaksud semua path yang mungkin terlibat untuk fungsi-fungsi dalam modul Training akan diwujudkan sama. Dalam fail routes/web.php tuliskan baris kod di bawah seperti ditunjuk anak panah. Route::resource('trainings','TrainingController'); Untuk menyenaraikan path kepada fungsi yang disediakan, laksanakan arahan 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() . Untuk menyediakan butang/link kepada borang masuk rekod baharu, tambah kod berikut ke fail template, resources/views/layouts/app.blade.php . Dalam form action pula, hantar rekod baharu ke link berikut untuk proses penyimpanan data ke pangkalan data (db). Seterusnya dalam fail app/Training.php, isikan senarai lajur jadual yang terlibat. Rujuk rajah di bawah dan tambah kod berikut; 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. Seterusnya dalam fail app/Training.php, isikan senarai lajur jadual yang terlibat. Rujuk rajah di bawah dan tambah kod berikut; Alhamdulillah, selesai fungsi masukkan rekod baharu. Bagaimana nak uji? Klik pada link Insert ditunjukkan anak panah.
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.generic')
@section('content')
	@if (session('success'))
		<div class="alert alert-success">
			{{ session('status') }}
		</div>
	@endif
	<div class="container">
		<div class="row justify-content-center">
			<div class="col-md-8">

				<div class="card info">

					<div class="card-header">Listing Trainings for Update/Delete

						<form method="get" action="{{ url('trainings') }}" class="form-inline">
							@csrf
							<input type="text" id="txtsearch" name="txtsearch" class="form-control">
							<button type="submmit" class="btn btn-primary">
								<i class="fa fa-search"></i>
							</button>
						</form>

					</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>
							<th></th>
						  </tr>
						</thead>
						<tbody>
						  @foreach($trainings as $training)
						  <tr>
							<td>{{$training['id']}}</td>
							<td>{{$training['trainingname']}}</td>
							<td>{{$training['desc']}}</td>
							  <td></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

Khirulnizam Abd Rahman: Sila hubungi kami di m.me/kuis.fstm atau WhatsApp 0129034614