การสร้าง Drop Down List สำหรับการเก็บข้อมูลแบบ ENUM

wave
มานพ กองอุ่น 18 เม.ย. 2016, 10:06:45 3,354

    ชนิดข้อมูลแบบ ENUM เป็นการเก็บข้อมูลลักษณะที่กำหนดค่าของข้อมูลไว้ล่วงหน้า อย่างเช่น รายชื่อจังหวัด ชนิดของผู้ใช้งาน เป็นต้น โดยมีการกำหนดลักษณะดังนี้

สร้างไฟล์ protected/components/ZHtml.php

class ZHtml extends CHtml
{
        public static function enumItem($model,$attribute)
        {
                $attr=$attribute;
                self::resolveName($model,$attr);
                preg_match('/\((.*)\)/',$model->tableSchema->columns[$attr]->dbType,$matches);
                foreach(explode(',', $matches[1]) as $value)
                {
                        $value=str_replace("'",null,$value);
                        $values[$value]=Yii::t('enumItem',$value);
                }
                
                return $values;
        }  

       public static function enumDropDownList($model, $attribute, $htmlOptions)
       {
          return CHtml::activeDropDownList( $model, $attribute,ZHtml::enumItem($model,  $attribute), $htmlOptions);
       
       
       }

}

สำหรับการใช้งานเปิดไฟล์ _form.php แล้วแก้ไขดังนี้

<?php echo CHtml::activeDropDownList( $model,'province',ZHtml::enumItem($model, 'province') ); ?>

หรือ

<?php echo ZHtml::enumDropDownList( $model,'province'); ?>

ที่มา: http://www.yiiframework.com/forum/index.php/topic/10079-enum-db-type-in-yii/

 


ความคิดเห็น

หากบทเรียนรู้มีความผิดพลาดประการใด หรือมีข้อเสนอแนะกรุณาแจ้ง contact@programmerthailand.com

เขียนบทเรียนรู้ของคุณ

รายละเอียด
  • ดู 3,354
  • รักเลย 0
  • หมวดหมู่ Tip Yii Framework (Yii1)
  • เขียนเมื่อ
  • แก้ไขเมื่อ
  • Tags yii
ข้อมูลผู้เขียน
มานพ กองอุ่น

มานพ กองอุ่น

เป็นสมาชิกเมื่อ: 18 ธ.ค. 2009

เนื้อหาที่เกี่ยวข้อง