Eloquent-Sluggable เป็น package เสริมสำหรับสร้าง Slug ภายใน Laravel Model โดยจะสร้าง Slug ใส่ฟิลด์ที่ระบุให้โดยอัตโนมัติ เมื่อมีการบันทึกข้อมูล
วิธีการติดตั้ง
- สั่งติดตั้ง Eloquent-Sluggable package
composer require cviebrock/eloquent-sluggable
- สร้างไฟล์ config ของ package ใน project
php artisan vendor:publish --provider="Cviebrock\EloquentSluggable\ServiceProvider"
วิธีการตั้งค่า
- เพิ่มฟิลด์สำหรับเก็บ slug ใน migration ของตารางที่ต้องการ
$table->string('name', 100);
$table->string('slug', 150);
- เพิ่มการใช้งาน Sluggable ใน Laravel model ที่สัมพันธ์กัน
<?php
...
use Cviebrock\EloquentSluggable\Sluggable;
...
class Type extends Model
{
...
use Sluggable;
...
/**
* Return the sluggable configuration array for this model.
*
* @return array
*/
public function sluggable()
{
return [
'slug' => [
'source' => 'name',
'separator' => '_',
]
];
}
}
โดยที่
- name เป็นฟิลด์ที่ใช้สร้าง Slug
- slug เป็นฟิลด์ที่ใช้เก็บ Slug ที่ถูกสร้าง
ตัวอย่างการใช้งาน
$type= new Type([
'name' => 'Parking fee',
]);
$type->save();
// $type->slug is "parking_fee"
$type2= Type::create([
'name' => 'Server fee',
]);
// $type2->slug is "server_fee"
No comments:
Post a Comment