background

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

6 months ago ◦ 2,362 Views

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

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

Laravel Collective เป็นตัวช่วยจัดการเรื่อง Form คือมันจะสร้าง Input แบบต่าง ๆ มาให้เราเองครับ จะสะดวกมากตอนนี้เราใช้เชื่อมกับ Model เพราะเมื่อเราทำแบบ form สำหรับ edit ข้อมูลมันจะเติมค่าที่มีอยู่แล้วใน Database ลงใน input ให้เราอัตโนมัติครับ

แต่ถ้าถามไม่มีข้อมูลมันก็จะเป็นค่า default หรือ ค่าว่างปกติ 

การติดตั้ง


ก่อนอื่นก็ติดตั้ง 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,
    // ...
  ],


การใช้งาน


เราจะใช้ได้เลยที่ไฟล์ใน views ของเราครับ 
เปิด ปิด 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' => '[email protected]'])

ถ้าต้องการสร้าง 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', '[email protected]'); // แบบกำหนดค่า

สร้าง 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!');




#laravel #laravelcollective

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