SluggbleBehavior เป็น class ที่ใช้สำหรับแปลงข้อความจากภาษาอื่นๆ ให้เป็นภาษาอังกฤษเพื่อใช้กับ url ลองเล่นกันดู ตัวนี้เป็น Behaviors ซึ่งแน่นอนมันจะทำงานให้อย่างอัตโนมัติ เพียงแค่เราทำการตั้งค่าที่ model ที่เราต้องการ อย่างเช่น
ผมต้องการใช้คำว่า "ข่าวประชาสัมพันธ์" เพื่อใช้เป็น url ในการเลือกข้อมูลที่มีเฉพาะข่าวประชาสัมพันธ์ มันก็จะทำการแปลงคำ จาก "ข่าวประชาสัมพันธ์" ให้เป็น "khaw-prachasamphanth" ซึ่งอาจจะไม่ตรงนัก แต่คิดว่าได้แค่นี้ก็แจ่มแระ ฮ่าๆ
เป้าหมายของเราคือ ให้ทำการแปลงข้อมูลจากฟิวด์ title แล้วนำข้อมูลที่แปลงแล้วมาเก็บที่ฟิวด์ slug
ถ้าหากตั้งชื่อฟิวด์ ที่จะรับข้อมูลเป็น slug ก็สามารถใช้งานได้เลยไม่ต้องตั้งค่าใดๆ เพิ่ม แต่ถ้าหากตั้งเป็นชื่ออื่น เราก็สามารถกำหนดค่าให้มันได้ที่ slugAttribute ว่าชื่อฟิวด์ slug ของเราชื่ออะไร
<?php
use yii\behaviors\SluggableBehavior;
public function behaviors()
{
return [
[
'class' => SluggableBehavior::className(),
'attribute' => 'title',
// 'slugAttribute' => 'slug',
],
];
}
?>
หลังจากนั้นเมื่อมีการ save หรือ update ข้อมูลมันจะทำการ แปลงข้อมูลให้อัตโนมัติ