รวมคำสั่งและวิธีการใช้งาน Laravel Collective ช่วยจัดการเรื่อง Form ให้ง่ายขึ้น

Save Pongsiri
ideagital
Published in
2 min readApr 25, 2018

การติดตั้ง

ก่อนอื่นก็ติดตั้ง Package ด้วย Composer

composer require "laravelcollective/html":"^5.4.0"

ต่อไปก็เข้าไปเพิ่ม Provider ตรงอาเรย์ชื่อ providers ในไฟล์ config/app.php

'providers' => [
// ...
Collective\Html\HtmlServiceProvider::class,
// ...
],

และเพิ่ม Aliase ตรงอาเรย์ชื่อ aliases ในไฟล์เดียวกัน

'aliases' => [
// ...
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
// ...
],

การใช้งาน

เปิด ปิด Form

{!! Form::open(['url' => 'foo/bar']) !!}
//
{!! Form::close() !!}

ค่าเริ่มต้น Method ของ Form จะเป็นแบบ Post, แต่เราสามารถกำหนด Method อื่น ๆ อย่าง POST, PUT และ DELETE ได้แบบนี้

Form::open(['url' => 'foo/bar', 'method' => 'put'])

ส่วน Action ของ Form เราสามารถกำหนดเป็นชื่อ Route

Form::open(['route' => 'route.name'])

หรือ เรียก Controller Action เลยก็ได้

Form::open(['action' => 'Controller@method'])

ถ้าต้องการสร้าง Form ให้สามารถอัพโหลดไฟล์ได้ ให้ไฟล์ออฟชั่น Files เข้าไปแบบนี้

Form::open(['url' => 'foo/bar', 'files' => true])

ผูก Form เข้ากับ Model

หากคุณต้องการให้ Form มีการใส่ข้อมูลที่มาจาก Database ไปเลย แบบไม่ต้องมาใส่เอง ส่วนนี้เราสามารถผูก Form กับ Model ที่ต้องการเข้าด้วยกัน เช่น Form แก้ไขข้อมูลผู้ใช้

Form::model($user, ['route' => ['user.update', $user->id]])

Label

สร้าง Label จากชื่อของ Input อัตโนมัติ

Form::label('email', 'E-Mail Address');

กำหนดชื่อ Label เอง

Form::label('email', 'E-Mail Address', ['class' => 'awesome']);

สร้าง Input ประเภทต่าง ๆ

สร้าง Input ประเภท Text

Form::text('username');Form::text('email', 'example@gmail.com'); // แบบกำหนดค่า

สร้าง Input ประเภท Password

Form::password('password', ['class' => 'awesome']);

สร้าง Input ประเภท Email

Form::email($name, $value = null, $attributes = []);

สร้าง Input ประเภท Number

Form::number('name', 'value');

สร้าง Input ประเภท Date

Form::date('name', \Carbon\Carbon::now());

สร้าง Input ประเภท File

Form::file($name, $attributes = []);

Checkboxes และ Radio Buttons

สร้าง Checkbox และ Radio

Form::checkbox('name', 'value');Form::radio('name', 'value');

ตั้ง Checked ให้กับ

Form::checkbox('name', 'value', true);Form::radio('name', 'value', true);

Drop-Down Select

สร้าง Select และกำหนดตัวเลือก

Form::select('size', ['L' => 'Large', 'S' => 'Small']);

กำหนดค่าเริ่มต้น และ Attribute อื่น ๆ

Form::select('size', ['L' => 'Large', 'S' => 'Small'], 'S');Form::select('size', ['L' => 'Large', 'S' => 'Small'], null, ['placeholder' => 'Pick a size...']);

สร้างตัวเลือกแบบจัดกลุ่ม

Form::select('animal',[
'Cats' => ['leopard' => 'Leopard'],
'Dogs' => ['spaniel' => 'Spaniel'],
]);

สร้างตัวเลือกแบบใส่ช่วงตัวเลข

Form::selectRange('number', 10, 20);

สร้างตัวเลือกแบบชื่อเดือน

Form::selectMonth('month');

ปุ่ม Buttons

สร้างปุ่ม Submit

Form::submit('Click Me!');

--

--

Save Pongsiri
ideagital

ศิลปินด้านพัฒนาซอฟต์แวร์ มีเป้าหมายคือพัฒนาตัวเองให้ยืดหยุ่นที่สุด ชอบความเรียบง่าย,ดนตรี,กีฬา และแมว