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 ข้อมูลมันจะทำการ แปลงข้อมูลให้อัตโนมัติ