วิธีติดตั้ง Laravel ด้วย Composer Laravel5 เป็น PHP Framework ที่ดังที่สุดในวงการทำเว็บ ด้วยการใช้งาน ด้วยฟิวเจอร์ค่อนข้างดีมาก และสามารถใช้งานร่วมกับ Composer ได้ ทำให้ชีวิตของโปรแกรมเมอร์สบายขึ้นเยอะเลย เช่นการติดตั้ง แค่ป้อนคำสั่งทาง Command line Interface กด Enter จากนั้นก็รอจนกว่าจะสมบูรณ์ เห็นไหมครับว่ามันง่าย และเร็วมาก

เนื้อหาในบทความนี้

  1. การติดตั้ง Laravel ด้วย Composer
  2. Routing
  3. การส่ง Data ไปยัง View มีกี่วิธี
  4. Routing Parameters
  5. Blade Template

1.การติดตั้ง Laravel ด้วย Composer

1- Install Composer : ไปดาวน์โหลด composer มาติดตั้งให้เรียบร้อย

2- Set Environment :ถ้าใช้ Windows  ไปที่ My Computer > Advanced > Environment Variables… > path > Edit > แล้วสังเกตว่ามี path ของ php ที่ถูกต้องไหม? C:\xampp\php; ถ้าไม่มี ก็สามารถใส่ C:\xampp\php; ได้เลยครับ

3- Install Laravel5.2 : เปิด CMD (Command Line) ขึ้นมา แล้วชี้ไปที่โฟลเดอร์ cd:\xampp/htdocs   หลังจากนั้นพิมพ์คำสั่งเพื่อติดตั้ง Laravel
composer create-project --prefer-dist laravel/laravel blog
รอ...

วิธีใช้ Laravel เบื้องต้น

สังเกตบันทัดล่างสุด คำว่า successfully แสดงว่าเสร็จเรียบร้อยแล้ว

วิธีใช้ Laravel เบื้องต้น

4- หลังจาก ติดตังเรียบร้อย ให้รันดู php artisan serve (Start Server)
พิมพ์ url :  localhost:8000/
ถ้ามันรันได้ จะแสดงคำว่า Laravel ตัวใหญ่ๆ

2.Routing

การเราติ้ง เป็นการกำหนดเส้นทางให้กับเว็บ  ไฟล์มันตั้งอยู่ในโฟลเดอร์ >app>Http>routes.php

routes.php : คือ เช่น หน้า Index ก็สั่งให้ไปโหลด View ว่า Welcome เหมือนกับกำหนดเส้นทางให้มัน

Route::get('/', function () {
return view('welcome'); //เรียก welcome.blade.php
});

อีกตัวอย่าง

สร้างไฟล์ view ขึ้นมา ชื่อ about.blade.php  ==> C:\xampp\htdocs\blog\resources\views\about.blade.php

กำหนดเส้นทางให้กับ about แล้ว return ค่า Hasan ลองรัน localhost:8000/about

Route::get('/about',function(){
return 'Hasan';
});

สังเกตที่ Route::get ทำไมต้องใช้ get

get: การดึงข้อมูลมาแสดง
post: เอาข้อมูลไปบันทึกในฐานข้อมูล
put path: การเอาข้อมูล ไปอัพเดตในฐานข้อมูล
delete : การลบข้อมูลในฐานข้อมูล

วิธีดู Route ทั้งหมดที่เราได้สร้างขึ้นมา  ใช้คำสั่ง php artisan : phpartisan route:list

3.การส่ง Data ไปยัง View มีกี่วิธี

วิธีที่ 1

— routes.php —

Route::get('/about',function(){
 $data['name'] = 'Hasan Lebaesa';
 $data['msg'] = 'Message';
 return view('about');
});

— about.blade.php —

{{ $name }}

วิธีที่ 2

— routes.php —

Route::get('/about',function(){
 $name = 'Hasan Lebaesa';
 return view('about',compact('name'));
});

— about.blade.php —

{{ $name }}

วิธีที่ 3

— routes.php —

Route::get('/about', function () {
	return view('about')->with('name','Hasan')->with('msg','Message');
});

— about.blade.php —

{{ $name }}

วิธีที่ 4

Route::get('/about', function () {
	return view('about')->withName('Hi Guys');
});

]

— about.blade.php —

{{ $name }}

4.Routing Parameters

Route Parameters เป็นการส่งค่าผ่านทาง URL

วิธีเขียน Reqular Expression ผ่าน Route Parameters มี 2 วิธี

วิธีที่ 1   เขียนต่อท้าย Route นั้นๆ

— routes.php —

Route::get('/cal/{num1?}/{num2?}',function($num1=0,$num2=0){
	echo $num1.'+'.$num2.' = '.($num1+$num2);
})->where('num1','[0-9]+')->where('num2','[0-9]+');

ลองรันดูครับ : localhost/blog/cal/99/99

วิธีที่ 2  เขียนที่ไฟล์    C:\xampp\htdocs\blog\app\Providers\RouteServiceProvider.php

— routes.php —

Route::get('/cal/{num1?}/{num2?}',function($num1=0,$num2=0){
 echo $num1.'+'.$num2.' = '.($num1+$num2);
})); 

RouteServiceProvider.php

public function boot(Router $router)
    {
        /*$router->pattern('num1','[0-9]+');
        $router->pattern('num2','[0-9]+');*/
        parent::boot($router);
    }

ลองรันดูครับ : localhost/blog/cal/99/99 ผลออกมาเหมือนกัน ต่างกันแค่วิธี!

5.Blade Template

Laravel มีระบบ Template ของมันเอง ทำให้นักพัฒนาสะดวกขึ้นเยอะ  ด้วยคำสั่งที่สั้นๆ ซึ่งการตั้งชื่อของไฟล์ จะต้องเป็นแบบนี้

yourname.blade.php   เริ่มด้วยชื่อไฟล์ที่ต้องการ ตามด้วย blade

ผมจะสรุปคำสั่งที่ใช้บ่อยๆ ใน blade

{{only text}}  การใช้ปีกกา {{ }} ครอบเท่ากับเป็นการ echo ถ้าปกติก็ echo ‘only text’;

{!! ‘<p>’.$name.'</p>’ !!}  การใช้ {!!  … !!} ทำให้เราสามารถแทรกแท็ก HTML ได้นั้นเอง

Loop if else

@if($name=='Hasan')
yes
@else
no
@endif

Loop foreach

/* routes.php */
Route::get('/about', function () {
 $data['guys'] = ['san','alex','seb']
 return view('about', $data);
});

/* about.blade.php */
@foreach($guys as $person)
	{{ $person }}
@endforeach

@for($i=0; $i<sizeof($people); $i++)="" {{="" $person="" }}="" @endfor="" <="" pre="">

วิธี Extends View

เป็นการสืบทอด หรือ Extends เช่น เราจะเอา Layout ไปใช้กับหน้าอื่นๆ เราก็แค่ใช้วิธี Extends เพื่อนำไปใช้งาน

Example:

สมมติเราสร้าง layout.blade.php เก็บไว้ในโฟลเดอร์ site

site/layout.blade.php ซึ่งเป็นไฟล์ที่สร้างเลย์เอาต์ เว็บไซต์ แล้วเราจะเอา layout.blade.php  extends ไปยังไฟล์ index.blade.php(สร้างไฟล์นี้เก็บใน site)

— index.blade.php —

ในไฟล์ index.blade.php เพียงแค่ในคำสั่งบันทัดเดียวก็สามารถ สืบทอด layout ที่เราสร้างไว้ใน layout.blade.php ทุกประการ
แค่ใส่คำสั่ง ==> @extends(‘site.layout’)

วิธีการประยุกต์ใช้ 

–layout.blade.php–

สมมติมีโครงสร้างดังนี้

...
header
@yield(‘content’) //ตำแหน่งข้อความที่จะมาแทนที่
footer
...

เราจะลองสืบทอด layout.blade.php ไปใช้กับหน้า site/index.blade.php

–index.blade.php– สร้างไฟล์ให้อยู่ในโฟลเดอร์ site

@extends('site.layout')

@section('content')
	index //ตำแหน่งข้อมูลที่ต้องการจะใส่ใน layout
@stop

เห็นใหมครับว่าการ extends layout ของ laravel มีประโยชน์มาก ทำให้ประหยัดเวลาขึ้นเยอะเลย
ไม่ต้องสร้างไฟล์ที่ซ้ำซ้อน แค่สร้างโครงสร้างไฟล์เดียว แล้วสือบอด(extends)

</sizeof($people);>

Hasan Lebaesa

เริ่มทำงานกับ Web Agency กทม. ลาออกมาทำฟรีแลนซ์เต็มตัว และลาออกจากการเป็นฟรีแลนซ์ ก่อตั้งบริษัท, ปี 2019 ตั้งเป้าไว้ว่า จะเขียนบทความดีๆ วีคละ 1 บทความ. About Me