Memaparkan catatan dengan label Laravel. Papar semua catatan
Memaparkan catatan dengan label Laravel. Papar semua catatan

Laravel part 6 - Migration

Mencipta table student menggunakan migration. Migration ialah pembinaan database yang boleh di rollback dan ala-ala github gitu tetapi dalam bentuk database.

php artisan make:migration create_students_table
Created Migration: 2019_10_17_141304_create_students_table


Boleh rujuk di:
https://laravel.com/docs/5.8/migrations

Secara default didalam file create_students_table akan mengandungi id dan timestamps:

    public function up()
    {
        Schema::create('students'function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->timestamps();
        });
    }


Kita akan buat penambahan didalam  table ini. Untuk dokumentasi cara bina dan jenis-jenis type data boleh lihat di: https://laravel.com/docs/5.8/migrations#creating-columns

Kita ingin menambah column nama, no ic, email dan major ke celah-celah diantgara id dan timestamps.

    public function up()
    {
        Schema::create('students'function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('nama');
            $table->char('noic',15)->unique();
            $table->string('email')->unique();
            $table->string('major');
            $table->timestamps();
        });
    }

kemudian, pergi ke terminal untuk migrate script ini dan run:
php artisan migrate

jika kita tengok, selain script create_students_table, terdapat dua lagi script yang dirun, itu adalah file default yang kita boleh delete dari folder database di dalam laravel.
manakala terdapat table pelajar, yang kita gunakan semasa laravel part 5. Ianya adalah yang asal dicipta menggunakan mysql dan bukan migrate.

Untuk undo semua script migration:
php aritsan migrate:rollback


Namun bagi file pelajar yang kita bina menggunakan mysql, ianya tidak rollback kerana script tersebut tiada didalam folder database dalam laravel

Jom kita melihat struktur data di dalam pelajar



Sekarang tambah 4 data untuk kita test. Table students tersebut sebenarnya sama sahaja data & datatype yang telah kita bina di tutorial ke 6 tempoh hari. Jadi kita boleh menukar table dari pelajardb kepada students di PelajarController untuk melihat hasilnya

class PelajarController extends Controller
{
    public function index()
    {
      $pelajar = DB::table('students')->get();
  
       return view('pelajar.index',['pelajar'=>$pelajar]);
    }
}

hasilnya:

Alhamdulillah. Siap bina database menggunakan migration. Sekarang kita akan membina model pula. Sila ke pelajaran seterusnya.

Install Extension Untuk Visual Code Studio - Laravel

1- Advanced New File by Dominik Kundel
2- Auto Close Tag  by Jun Han
3- Bootstrap 3 Snippets by William Whitehead
4- Bootstrap v4 Snippets by Zaczero
5- Bootstrap 4, font awesome 4, font awesome 5 free by Ashok Koyi
6- DotENV by mikestead
7- Laravel Blade Snippets by Winnie Lin
8- Laravel Artisan by Ryan Naddy
9- Laravel 5 snippets by Winnie Lin
10 - Laravel 5 snippets  by Sachit Tandukar
11- Night Owl (Vs Code Theme) by Sarah Drasner
12- PHP Formatter by Sophisticode
13- PHP IntelliSense by Felix Becker
14-  PHP Namespace Resolver by Mehedi Hassan



Laravel Part 5 - Menyambung Connection Database & View field




1. Cipta database bernama pelajardb yang mengandungi :


2.  Isi data dua atau lebih.


3. Edit file .env dan sesuaikan dengan server mysql kita. DB_DATABASE kita letak nama pelajardb yang telah kita cipta.


Create controller bernama PelajarController menggunakan terminal dgn command

php artisan make:controller PelajarController -resource


Buka file controller Pelajar Controller.php

letak
use Illuminate\Support\Facades\DB;



namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;


class PelajarController extends Controller
{
    public function index()
    {
      $pelajar = DB::table('pelajar')->get();
  
       return view('pelajar.index',['pelajar'=>$pelajar]);
    } }
command  $pelajar = DB::table('pelajar')->get(); bertujuan menyenaraikan semua di dalam table pelajar dan meng-assign-kan nilai tersebut ke $pelajar  .

Semua maklumat tadi berada dalam bentuk array, kerana ada dua row data yang telah kita masukkan, oleh itu kita hantar nilai $pelajar  ke paparan view iaitu ke blade index.blade.php yang terletak di dalam folder pelajar di dalam view.




4.  Di dalam blade di view (index.blade.php) , kita akan membuat @foreach iaitu    @foreach ($pelajar as $pel) untuk memanggil nilai  $pelajar  yang telah dihantar oleh controller untuk kita asingkan mengikut baris.

command:
{{ $loop->iteration }}
kita gunakan untuk paparkan bilangan kiraan rekod yang telah kita jalankan.


@extends('layout.main')

@section ('title','Portal Encraption.blogspot.com')

@section('container')
<div class="container">
  <div class="row">
    <div class="col-10">
      <h1 class="mt-3">Daftar Pelajar</h1>


      <table class="table">
        <thead class="thead-dark">
          <tr>
            <th scope="col">#</th>
            <th scope="col">Nama</th>
            <th scope="col">Email</th>
            <th scope="col">Major</th>
            <th scope="col">Tindakan</th>
          </tr>
        </thead>
      
        <tbody>
          @foreach ($pelajar as $pel)
            <tr>
                <td>{{ $loop->iteration }}</td>
               <td>{{ $pel->nama }}</td>
                <td></th>{{ $pel->email }}</td>
                <td>{{ $pel->major }}</th>
                <td>
                    <a href="" class="badge badge-success">edit</a>
                    <a href="" class="badge badge-danger">delete</a></td>
              </tr>
              @endforeach

        </tbody>


      </table>
    </div>
  </div>
</div>
@endsection


?>

output:




Download di sini

Laravel Part 4 - Mengirim Nilai Di Route kepada View

Ekperimen kali ini cuba mengirim nilai dari web.php (route) kepada view pelajar.

Di fail route, kita assign nilai pada nama tersebut.

<?php

Route::get('/pelajar', function () {
    $nama = 'Mr Encraptor Samado';
    return view('pelajar',['nama' => $nama]);
});
?>

Kemudian di page view pelajar,  hanya menggunakan memanggil menggunakan {{nama}} sahaja seperti
<?php
@section('container')
<div class="container">
  <div class="row">
    <div class="col-10">
      <h1 class="mt-3">Ini Section Pelajar!</h1>
      <br>
      Selamat datang, {{$nama}}!
    </div>
  </div>
</div>
@endsection
?>

Output:

 

Mudah bukan?

Laravel Part 3 - Memusatkan Layout Untuk Memudahkan Pengeditan (master layout)

Seperti anda ketahui, website biasanya mempunyai paparan sama sahaja, hanya content sahaja yang berubah.

Untuk itu, kita boleh memindahkan semua element kecuali content kita ke satu page yang khas, di mana kita akan panggil page tersebut yang mungkin mengandungi header dan footer dan navbar, namun isinya pula, kita akan buat page-page baru. Maknanya content sahaja berada di page-page baru, layoutnya kita tempatkan pada satu page yang satu sahaja.

Jom kita bina master layout


Create folder dibawah folder views, namakan layout. create file bernama main.blade.php, copy semua di dalam welcome.blade.php ke adalam layout/main.blade.php. Kita namakan main.blade.php ini sebagai page induk.

Setiap page akan berubah title  walaupun struktur displaynya adalah sama. Oleh itu kita akan menggunakan @yield('title') di page induk ini (main.blade.php), dan nilai 'title' itu akan dihantar oleh page-page yang lain menggunakan command @section, sebagai contoh nilai title itu kita namakan Portal rasmi James Bond, oleh itu di child page, kita akan taip aturcara seperti @section('title','Portal Rasmi James Bond') untuk menghantar value tersebut ke tempat @yield('title') tadi.








Download Files Yang Berkaitan Dengan Tutorial Laravel Part 3

Laravel Part 2 - Berkenalan dengan folder asas


Didalam Laravel, terdapat folder Views dan Routes yang memainkan peranan penting. Jika kita mula-mula instal Laravel, terdapat hanya satu sahaja file di dalam folder Views iaitu welcome.blade.php. Segala berkaitan coding yang melibatkan display antara muka diletakkan di sini.

Di folder ini, semakan banyak page yang akan dipaparkan, semakin banyak file ber-extension .blade.php akan dibuat di folder Views.


Manakala di folder routes pula, terdapat satu file bernama web.php. Disini semua aturan berkaitan route akan digunakan sepenuhnya.
 Sebagai contoh, / ialah home, kita akan hantar kepada file view yang bernama index.blade.php, begitu /about, kita akan kepada view about.blade.php

Manakala  jika kita lihat isi kandungan fail-fail ber-extension blade.php, ianya seperti dibawah:


ianya bertujuan untuk page paparan.




Laravel Part 1 - Memulakan Projek Laravel - Instalasi Laravel


Perlu ada 3 perkara yang telah siap di install ke dalam komputer sebelum memulakan pembangunan sistem menggunakan kerangka Laravel

3 perkara tersebut ialah:

1. Xampp  (https://www.apachefriends.org/download.html)
2. Composer  (https://getcomposer.org/)
3. Git Batch  ( https://git-scm.com/download/win)



composer create-project --prefer-dist laravel/laravel cubaLaravel
.


Setelah siap laravel di download, boleh masuk ke folder sistem tersebut dan run

cd cubaLaravel/
php artisan serve






Localhost sistem laravel dalam folder public, dibuka pada port 127.0.0.1:8000

Boleh test di browser:


Bersambung. 




6- Laravel - Routing Controllers - Resource

test


5- Laravel - Routing Controllers - Penghantaran Nilai


1) Bermula penghantaran nilai atau passing value.  Mulakan dengan nilai value id.

Fail Routes:

1

2) Fail Controller bernama PostController menerima route get Posts dan memproses value {id} yang dihantar pada function index

2

3) Paparan

3


4- Laravel - Routing Controllers

1) Mewujudkan fail Controller yang baru bernama PostsController

$ php artisan make:controller --resource PostsController1

2) Di bahagian function index pada fail Controller bernama PostsController tadi,  letakkan satu penyataan menyatakan index telah berjaya dijalankan.

public function index()
{
     //
     return "Index telah dijalankan. Tahniah";
}

2

3)  Panggil controller tadi dengan laluan panggilan url get bernama posts (http://localhost:3000/cms/public/posts) ,  dan bila buka di browser pada panggilan get posts ini, maka route menyatakan bahawa controller akan mengawal laluan ini dan fail controller itu yang dimaksudkan iaitu PostsController. Dan didalam fail controller tadi, terletak banyak function. Namun apa yang diminta oleh panggilan url bernama posts ini ialah function index().

Route::get('/posts','PostsController@index');

3

Penyataan:

1- Posts ialah laluan iaitu http://localhost:3000/cms/public/posts
2-  Nama controller yang mengawal get posts ini ialah PostsController
3-  Nama function yang akan handle get posts ini yang terletak dalam controller PostsController ialah index.

4


3- Laravel - Controllers Create

1. Controller boleh dibina dengan create file didalam sublime text. Tapi boleh juga dibuat di terminal dengan menaip:

php artisan make:controller PostController

4

Maka file controller juga diwujudkan seperti dibawah:

5

Namun kalau kita inginkan controller tersebut dipenuhi dgn resource seperti CRUD, boleh tambah command –-resource seperti:

$ php artisan make:controller --resource ArticlesController

6

Maka file controller diwujudkan dengan dilengkapi CRUD iaitu index, create, store, show, edit, update, destroy seperti dibawah:

7

8

9


3- Laravel - Introduction Controllers


1. Controller merupakan orang tengah.
2. Terletak di dalam folder app->Http->Controllers.
3. Main controller adalah bernama Controllers.php.
4. Didalam Controllers mengandungi:
    - namespace
   - use

Namespace adalah folder dimana controller file berada.  Dan use adalam dimana controller dipanggilcontroller3


Lihat keterangan dibawah


controller4


1. namespace digunakan untuk bagitau dimana file controller (yg dipanggil oleh no 2) itu berada.
2.  Folder nama Book. Juga merupakan folder fizikal. Dipanggil namespace.
3. Nama fail NotebooksController.php merupakan controller.
4. Sesuai digunakan Usecase ini jika ada fail yang sama nama seperti NotebooksController.php  juga berada di folder selain Book, contoh di folder Journal.

Dalam view juga perlu diubah Route::Resource untuk memanggil controller mana.

controller2


2- Laravel - Routes

Fail Routes berada di folder app->Http

routes

Hasil:

routes2


Code:

route9a


Hasil:

route9

Untuk semak route, guna command di git bash:

php artisan route:list

routes10

Namun, kalau tengok di kotak Name, tiada nama. bagaimana mengisi nama tersebut? Guna array untuk namakan field tersebut:


2018-03-14_110504

Pergi ke browser, dan taip:
http://localhost:3000/cms/public/admin/posts/example
outputnya adalah:

2018-03-14_110803

Route nya juga telah dinamakan. Lihat:


2018-03-14_110918


Bagaimana Set SSH-KEYGEN

Taip di SSH Shell:

ssh-keygen -t rsa -b 4096 -C "encraptor@gmail.com"


-generate-keygen-ssh

Penyediaan Vagrant & Laravel

Download tool dan install:
https://www.vagrantup.com/
https://git-scm.com/download/win
https://www.virtualbox.org/wiki/Downloads

Rightclick di desktop, pilih git bash here:

bash

Lokasi folder di user/nixk, taip :
ls –la

tukar drive ke D guna command :
cd g:
vagrant box add laravel/homestead (pilih virtualbox)
kemudian pilih choice virtualbox

vagrant-box-add-laravel-homestead

Ianya mengambil masa yang agak lama.

Kemudian keluar notification siap:

==> box: Successfully added box 'laravel/homestead' (v5.2.0) for 'virtualbox'!


boleh semak menggunakan command:

vagrant box list

vagrant-box-list

setelah siap, taip:
cd .v
cd .vagrant.d/
cd c:
$ git clone https://github.com/laravel/homestead.git Homestead
git-clone-github-laravel

Bukak Explorer cari folder: C:\Homestead
tekan init.bat akan menghasilkan  fail Homestead.yaml dalam folder berkenaan.

Kemudian buka file homstead.yaml tersebut untuk lihat isinya:

homestead-yaml

Kelihatan keys ssh. Bagaimana ingin mendapatkan ssh? Boleh click di pautan ini

Ubah di  folders dalam Homestead.yaml:

   - map: ~/code kepada    - map: G:\laravel-projects

dan:

sites:
     - map: encraptor.app
       to: /home/vagrant/code/encraptor/public


homestead

INSTALL COMPOSER MEMERLUKAN PHP.EXE

Download  VC15 x64 Thread Safe (2018-Mar-01 06:45:07) di pautan
https://windows.php.net/download/ iaitu :
https://windows.php.net/downloads/releases/php-7.2.3-Win32-VC15-x64.zip

kemudian, extract. rename nama folder tersebut kepada php. Dan letak folder php itu di C:\

Semasa install composer, dia akan minta php.exe. Sila cari di folder php yang telah kita extract di drive C tadi.

Composer sepatutnya telah boleh digunakan di Git bash. Quit git bash dan masuk balik serta try run command:

run-composer

copy ke desktop file hosts di folder:

C:\Windows\System32\drivers\etc

masukkan di dalam file host:
192.168.10.10 encraptor.app
192.168.10.10 homestead.dev


host1

bergantung kepada dalam file homestead.yaml

host2

file host disave dan dicopy semula ke:
C:\Windows\System32\drivers\etc