รวมคำสั่งและวิธีการใช้งาน Laravel Collective ช่วยจัดการเรื่อง Form ให้ง่ายขึ้น
การติดตั้ง
ก่อนอื่นก็ติดตั้ง 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!');